我尝试了stackoverflow中的一些选项(例如1)但是这也没有用,所以我的代码可能有错:
fileConn<-file("outputR.txt")
for (i in 1:length(lines)){
line = lines[i]
fields = strsplit(line, "\t")[[1]]
id = fields[1]
goIDs = fields[2:length(fields)]
list = as.list(GOCCANCESTOR[goIDs])
text = paste(toString(id), ":", toString(goIDs))
cat(text, file=fileConn, append=TRUE, sep = "\n")
}
close(fileConn)
当我运行此代码时,它会一直覆盖outputR.txt文件中的数据。 有什么建议可以解决这个问题吗?
答案 0 :(得分:1)
问题是你正在使用Fileconnection与cat
结合使用,然后附加功能无法正常工作。你可以使用几个选项,最容易的就是这个:
首先&#34;创造&#34;该文件,如果您想添加标题,例如:
header = "some header"
## if you don't want to use a header then leave the header blank
header =""
cat(text, file="outputR.txt", append=FALSE, sep = "\n")
如果要清除文件(如果已存在),请注意append = FALSE
这是必要的,否则您必须使用append = TRUE
您可以使用以下方式将文字写入其中:
text = text = paste(toString(id), ":", toString(goIDs))
cat(text file="outputR.txt", append=TRUE, sep = "\n")
答案 1 :(得分:0)
作为猫状态的帮助页面:
追加:逻辑。仅在参数文件是文件名(而不是连接或“| cmd”)时使用。如果TRUE输出将附加到文件;否则,它将覆盖文件的内容。
因此,如果在file参数中使用连接,则忽略append参数的值。
只需将文件参数指定为文件名:
cat(text, file="outputR.txt", append=TRUE, sep = "\n")
或者您可以使用指定的正确模式打开文件连接
w+
- 开放阅读和写作,最初截断文件。
fileConn <- file("outputR.txt", open = "w+")
for (i in 1:length(lines)){
text <- paste("my text in line", i)
cat(text, file = fileConn, sep = "\n")
}
close(fileConn)
答案 2 :(得分:0)
这里有两个选项:
<强> 1 强> 以写入模式打开文件:
lines <- c("aaaaa", "bbbb")
fileConn<-file("test.txt", "w")
for (i in 1:length(lines)){
line = lines[i]
cat(line, file=fileConn, append=TRUE, sep = "\n")
}
close(fileConn)
<强> 2 强> 将write函数与append参数一起使用:
lines <- c("aaaaa", "bbbb")
for (i in 1:length(lines)){
line = lines[i]
write(line,file="test2",append=TRUE)
}