我使用writeLines写入文件,但它似乎覆盖了上一行。最快/最喜欢的方法是什么?
使用writeLines
fd <- file("foo.Rmd")
writeLines('first line', fd)
writeLines('second line', fd)
close(fd)
$ cat foo.Rmd
second line
使用写入
fd <- file("foo.Rmd")
write("foo", fd)
write("boo", fd, append=TRUE)
close(fd)
$ cat foo.Rmd
boo
答案 0 :(得分:6)
对于file/writeLines
,您忘记了打开操作的模式。它可以是“w”或“wt”。
fd <- file("foo.Rmd", open = "wt")
writeLines('first line', fd)
writeLines('second line', fd)
close(fd)
readLines("foo.Rmd")
[1] "first line" "second line"
对于write
,参数file
不是连接,它是文件名,字符串。
write("foo", "foo.Rmd")
write("boo", "foo.Rmd", append=TRUE)
readLines("foo.Rmd")
[1] "foo" "boo"
#unlink("foo.Rmd")
答案 1 :(得分:1)
将两行连接成一个向量并将其发送到writeLines()
:
fd <- file("foo.Rmd")
lines <- c('first line','second line')
writeLines(lines,fd)
close(fd)
如果你想让它对于不同大小的列表更通用,你可以将行作为第一行开始,然后在循环中连接其他行。假设您有一个名为data
的列表,其中包含n
行:
fd <- file("foo.Rmd")
lines <- data[1]
n=length(data)
for(i in (2:n)){
lines <- c(lines,data[i])
}
writeLines(lines,fd)
close(fd)