R 脚本只提取五分之一

R 脚本只提取五分之一,r,R,我有一个包含10个NCDF4文件的目录。我编写了一个脚本,以分离出文件观察维度中大于100个观察值的文件。我想写一个文本文件,这些文件符合这个标准。但是当我运行脚本时,只有满足条件的五个脚本中的最后一个写入文本文件。我应该有5个文件。我做错了什么 我的脚本如下: x <- filenames <- list.files("D:/Rwork/Test", pattern = "*.nc", full.names = TRUE) file.create("stationstouse.da

我有一个包含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)
}
x尝试以“附加”模式打开文件:


fileConn根据文档,
write
cat
的包装,并且根据
cat
的文档:

追加逻辑。仅当参数文件是文件名(而不是连接或“| cmd”)时使用。如果为真,则输出将附加到文件中;否则,它将覆盖文件的内容

因此,替换:

write("\n",file = fileConn, append = TRUE)
write(fileConn, file = fileConn, append = TRUE) 

您应该至少获得一行以上的输出


希望这能有所帮助。

尝试过,但不幸没有成功。正确的测试函数是什么?也许是“nrow”?让我试试看,没有luckI认为这与脚本的-write(fileConn,file=fileConn,append=TRUE)部分有关。但是我不知道,让我试试看,给我一个很好的尝试,但是我没有得到最后一个文件,而是在txt文件中得到了一行3。伊恩:我的意思是问你为什么要把
fileConn
写到“stationsuse.data”。这就是你看到的
3
?查看我的编辑是否有所改进。Hi Aichao,无错误-cat(x,file=file,sep=c)(rep.int(sep,ncolumns-1),“\n”),:缺少参数“x”,没有default@ian:当
write
没有要写入的数据(即
i
)时会发生这种情况。是否确实编辑了与答案相关的代码?
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)