Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么在R中执行循环时重复第一个值?_R_Netcdf - Fatal编程技术网

为什么在R中执行循环时重复第一个值?

为什么在R中执行循环时重复第一个值?,r,netcdf,R,Netcdf,我有几个netcdf文件要提取到文本文件,但我发现输出文件es55.txt中A,B,C的第一个值(来自第一个文件)在整个文本文件中重复,因此循环不会从其他文件中取值 守则: library("ncdf") a<-list.files("C:\\Users\\CLdata", "*.nc", full.names = TRUE) dt <- as.POSIXct(strptime(basename(a), "data_%Y%m%dT%H%M%S_%Y%m%dT%H%M%

我有几个netcdf文件要提取到文本文件,但我发现输出文件
es55.txt
A,B,C
的第一个值(来自第一个文件)在整个文本文件中重复,因此循环不会从其他文件中取值 守则:

    library("ncdf")
 a<-list.files("C:\\Users\\CLdata", "*.nc", full.names = TRUE)
 dt <-   as.POSIXct(strptime(basename(a), "data_%Y%m%dT%H%M%S_%Y%m%dT%H%M%S", tz = "GMT"))
 for(i in 1:length(a)){
  f <- open.ncdf(a[i])
  A = get.var.ncdf(nc=f,varid="Sgf",verbose=TRUE)
  B <- get.var.ncdf(nc=f,varid="gh")
  C <- get.var.ncdf(nc=f,varid="jk")
  df=data.frame(date = dt, A, B ,C ) }
   write.table(df,file="es55.txt")

这可能是因为您正在循环之外写入文件。尝试按如下方式附加到循环内部的文件:

library("ncdf")
a <-list.files("D:\\Cloud\\Dropbox\\Documents\\Shared\\", "*", full.names = TRUE)

dt <- as.POSIXct(strptime(basename(a), "data_%Y%m%dT%H%M%S_%Y%m%dT%H%M%S", tz = "GMT"))
for(i in 1:length(a)){
  f <- open.ncdf(a[i])
  A = get.var.ncdf(nc=f,varid="Sgf",verbose=TRUE)
  B <- get.var.ncdf(nc=f,varid="gh")
  C <- get.var.ncdf(nc=f,varid="jk")
  df <- data.frame(date = dt, A, B ,C ) 
  print(df) # For debugging purposes
  if (i==1) {
     write.table(df,file="es55.txt")
     }
  else {
     write.table(df,file="es55.txt", append = TRUE)          
}
库(“ncdf”)

a我想你需要一个
图书馆
电话。
get.var.ncdf
from在哪里?您确定
es55.txt
包含第一个文件中的数据吗?在循环中,每次都覆盖
df
,并且只使用
df
的最后一个内容写入文件。因此,我希望您将最后一个文件的内容(
a[length(a)]
)写入
es55.txt
library("ncdf")
a <-list.files("D:\\Cloud\\Dropbox\\Documents\\Shared\\", "*", full.names = TRUE)

dt <- as.POSIXct(strptime(basename(a), "data_%Y%m%dT%H%M%S_%Y%m%dT%H%M%S", tz = "GMT"))
for(i in 1:length(a)){
  f <- open.ncdf(a[i])
  A = get.var.ncdf(nc=f,varid="Sgf",verbose=TRUE)
  B <- get.var.ncdf(nc=f,varid="gh")
  C <- get.var.ncdf(nc=f,varid="jk")
  df <- data.frame(date = dt, A, B ,C ) 
  print(df) # For debugging purposes
  if (i==1) {
     write.table(df,file="es55.txt")
     }
  else {
     write.table(df,file="es55.txt", append = TRUE)          
}