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