将行追加到文件

问题描述 投票:0回答:4

我是 R 新手。我正在尝试使用 R 中的现有数据向文件添加(追加)新行。问题是我的数据大约有 30000 行和 13000 列。我已经尝试使用

writeLines
函数添加一行,但生成的文件仅包含添加的行。

r file large-data
4个回答
132
投票

您尝试过使用

write
功能吗?

line="blah text blah blah etc etc"
write(line,file="myfile.txt",append=TRUE)

42
投票

write.table
write.csv
等都有
append=
参数,它会附加
append=TRUE
并且通常会覆盖 if
append=FALSE
。因此,您想要/必须使用哪一个,取决于您的数据。

顺便说一句,

cat()
也可用于将文本写入文件,并且还具有
append=
参数。


5
投票

您可以在附加模式下打开连接,以使用 writeLines

 将行附加到现有文件。

writeLines("Hello", "output.txt") #Create file CON <- file("output.txt", "a") #Open connection to append writeLines("World", CON) #Append: World writeLines("End", CON) #Append: End close(CON) #Close connection
基本相同,但使用

cat

,不同之处在于每次操作都会打开和关闭文件,这会降低性能。

cat("Hello\n", file = "output.txt") cat("World\n", file = "output.txt", append = TRUE) cat("End", file = "output.txt", append = TRUE)

cat

 与连接一起使用,就像上面的 
writeLines
 一样。

cat("Hello\n", file = "output.txt") CON <- file("output.txt", "a") cat("World\n", file = CON) cat("End", file = CON) close(CON)
如果创建文件并追加后续内容。

CON <- file("output.txt", "w") writeLines("Hello", CON) writeLines("World", CON) writeLines("End", CON) close(CON)
    

0
投票
lapply(listOfVector, function(anyNameofVect){ write(anyNameofVect, file="outputFileName", sep="\t", append=TRUE, ncolumns=100000) })

lapply(listOfVector, write, file="outputFileName", sep="\t", append=TRUE, ncolumns=100000)
    
© www.soinside.com 2019 - 2024. All rights reserved.