Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 向文件追加行_R_File_Large Data - Fatal编程技术网

R 向文件追加行

R 向文件追加行,r,file,large-data,R,File,Large Data,我是使用R的新手。我正在尝试使用R中的现有数据向文件添加(附加)新行。问题是,我的数据约有30000行和13000列。我已尝试使用writeLines函数添加一行,但生成的文件仅包含添加的行。是否尝试使用该函数 line="blah text blah blah etc etc" write(line,file="myfile.txt",append=TRUE) write.table、write.csv和其他所有的表都有append=参数,该参数追加a

我是使用R的新手。我正在尝试使用R中的现有数据向文件添加(附加)新行。问题是,我的数据约有30000行和13000列。我已尝试使用
writeLines
函数添加一行,但生成的文件仅包含添加的行。

是否尝试使用该函数

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

write.table
write.csv
和其他所有的表都有
append=
参数,该参数追加
append=TRUE
,通常在
append=FALSE
时覆盖。因此,您想要/必须使用哪一个取决于您的数据

顺便说一下,
cat()
还可以用于将文本写入文件,并且还具有
append=
参数

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


甚至
sink(append=TRUE)
。对于纯文本数据,请使用
cat()
而不是
write()
。如前所述,“数据(通常是矩阵)
x
被写入文件
file
write()
不适用于简单的字符串数据。它旨在格式化更复杂的类型,并围绕
cat()
对文件进行实际写入。使用
cat()
时,您需要
粘贴0(行“\n”)
以在文件末尾换行。可能重复@MichaelOhlrogge您确定这是重复的吗?您链接到的Q通常是关于向文件中写入行,而此Q专门询问如何向现有文件中追加行。@UweBlock True,但链接的Q在其许多答案中讨论了追加选项。@MichaelOhlrogge它只是链接Q中8个答案中的2个。两者都建议
cat()
。两者都相当简洁。他们都没有解释为什么使用
append
选项或该选项的效果。没有其他答案(
writeLines()
sink()
)提及或讨论
append
选项。@UweBlock好的,当然,我会收回。请确保您不将连接用作文件,而只是放在文件路径中,否则append将不起作用@Ansjovis86能否请您详细说明一下“作为文件的连接”@munmunbb这只是当您使用连接设置时。如果你没有,不要担心。如果你有,把它从你的代码中删除,这个答案就行了。虽然这对很多人来说可能非常明显,但我以前一直在阅读现有的文件,使用rbind在其中添加一行,然后再次编写更新后的文件。我现在看到,这是非常低效的,使用write来追加一行要快得多。
write
并不是真的要将一个简单的字符串写入文件。如前所述,“数据(通常是矩阵)
x
被写入文件
file
”,考虑到“write”命令将被追加时过于复杂。
lapply(listOfVector, write, file="outputFileName", sep="\t", append=TRUE, ncolumns=100000)