我有一个包含10个NCDF4文件的目录。我写了一个脚本,在文件观察维度中用超过100个观察值来分离文件。我想写一个文本文件,符合该标准的文件。但是当我运行脚本时,只有符合条件的五个中的最后一个被写入文本文件。我应该有5个文件。我究竟做错了什么 我的脚本如下:
x <- filenames <- list.files("D:/Rwork/Test", pattern = "*.nc", full.names = TRUE)
file.create("stationstouse.data")
for (i in x) {
filetoopen <- (i)
a <- nc_open(filetoopen)
D <- a$dim$obs$vals
z <- length(D)
if (z > 100) {
fileConn <- file("stationstouse.data")
write("\n",file = fileConn, append = TRUE)
write(fileConn, file = fileConn, append = TRUE)
close(fileConn)
print(i)
}
nc_close(a)
}
答案 0 :(得分:1)
尝试以“追加”模式打开文件:
fileConn <- file("stationstouse.data", "a")
答案 1 :(得分:0)
根据文档,write
是cat
的包装器,并且根据cat
的文档:
追加逻辑。仅在参数文件是文件名(而不是连接或&#34; | cmd&#34;)时使用。如果TRUE输出将附加到文件;否则,它将覆盖文件的内容。
因此,请更换:
write("\n",file = fileConn, append = TRUE)
write(fileConn, file = fileConn, append = TRUE)
与
write("\n",file = "stationstouse.data", append = TRUE)
write(i, file = "stationstouse.data", append = TRUE)
你应该得到至少一行输出。
希望这有帮助。