脚本只提取五分之一

时间:2016-08-19 17:58:05

标签: r

我有一个包含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)
}

2 个答案:

答案 0 :(得分:1)

尝试以“追加”模式打开文件:

fileConn <- file("stationstouse.data", "a") 

答案 1 :(得分:0)

根据文档,writecat的包装器,并且根据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) 

你应该得到至少一行输出。

希望这有帮助。