是否有可能追加到已有的文件的第一行? [英] Is it possible to append to the first line of an exisiting file?

查看:167
本文介绍了是否有可能追加到已有的文件的第一行?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经看了几个有能力将文本添加到现有的数据文件中的函数(.csv或.txt),如write.table,write.lines或下沉。

I've looked at several of the functions that are able to add text to an existing data file (.csv or .txt) such as write.table, write.lines, or sink.

在追加参数= TRUE,新的数据总是在文件的最后既有线后加入。是否有可能将数据添加到第一行的现有文件(一个标题下) - AKA相反的追加

When the append argument =TRUE, the new data is always added after the last existing line of the file. Is it possible to add data to an existing file on first line (below a header)- AKA opposite of append?

如果有一个数据帧:

DF <- as.data.frame(matrix(seq(20),nrow=5,ncol=4))
colnames(DF) <- c("A", "B", "C", "D")
write.table(DF, "DF.csv", row.names=FALSE, sep=",")

我可以追加新的数据帧像这样的最后一行

I can append a new data frame to the last line like this

A <- 1
A <- data.frame(A)
A$B <- 1
A$C <- 1
A$D <- 1
write.table(A, "DF.csv", row.names=FALSE, sep=",", append=TRUE, col.names=FALSE)

这是接近我想要的。但我真的很想有上述行添加到DF.csv(右头下面)的第一行,像这样

Which is close to what I want. But I would really like to have the above line to be added to the first line of the DF.csv (right below the header) like so

A   B   C   D
1   1   1   1
1   6   11  16
2   7   12  17
3   8   13  18
4   9   14  19
5   10  15  20

需要明确的是,我不希望增加一行到中河数据帧我希望能行添加到文件的开头第r环境之外。正如追加可用于将数据添加到一个外部.csv文件的最后,我希望能数据追加到.csv文件的开头,让自己的最新数据始终排在第一位登场(以避免通过一个长文件的结尾滚动以查看最新的数据)。

To be clear, I'd not looking to add a row into a data frame within R. I am hoping to add a row to the beginning of a file outside of the R environment. Just as append can be used to add data to the end of an external .csv file, I am hoping to "append" data to the beginning of a .csv file, so that my latest data always comes up in the first row (to avoid scrolling through to the end of a long file to see the most current data).

推荐答案

编写您自己的功能:

my.write.table <- function(df, filename, sep)
{
   ## read the existing content
   temp.df <- read.table(filename, sep)

   ## append in front
   df <- rbind(df, temp.df)

   ## write back the whole data frame
   write.table(df, filename, sep)
}

这篇关于是否有可能追加到已有的文件的第一行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆