我想先说我不是程序员,我只是试图存储数据,以便自己易于阅读。编写一个循环来存储r中的很多数据变量
我刚刚下载的天气数据的大.NC文件,我想从文件中提取数据,并将其存储在.csv格式,所以我可以很容易地在Excel中它查看。数据的问题在于它包含53个具有三个“维度”的变量:纬度,经度和时间。我写了一些代码只采取一定的经纬度和每个时间戳,所以我为每个变量(有一个经度和纬度,但每个时间戳)获得一个很好的列。我的问题是我想让循环为R中的每个变量存储一个不同的(任意)对象的列,这样我只需运行一次,然后用write.csv将所有数据写入一个.csv文件功能。
这里是我到目前为止,其中janweather是.NC文件编写的代码。
while(j <= 53){
v1 <- janweather$var[[j]]
varsize <- v1$varsize
ndims <- v1$ndims
nt <- varsize[ndims] # Remember timelike dim is always the LAST dimension!
j <- j +1;
for(i in 1:nt) {
# Initialize start and count to read one timestep of the variable.
start <- rep(1,ndims) # begin with start=(1,1,1,...,1)
start[1] <- i
start[2] <- i# change to start=(i,i,1
count <- varsize # begin w/count=(nx,ny,nz,...), reads entire var
count[1] <- 1
count[2] <- 1
data3 <- get.var.ncdf(janweather, v1, start=start, count=count)
}
}
下面是print.ncdf(janweather)NC文件的详细信息:
[1] "file netcdf-atls04-20150304074032-33683-0853.nc has 3 dimensions:" [1] "longitude Size: 240" [1] "latitude Size: 121" [1] "time Size: 31" [1] "------------------------" [1] "file netcdf-atls04-20150304074032-33683-0853.nc has 53 variables:"
我的主要目标是让由get.var.ncdf
函数以不同的名称保存的所有变量。现在我意识到它只是覆盖'data3'直到它到达最后一个变量,所以我所完成的工作是将data3写入最后一个变量。我想认为有一个简单的解决方案,但我不确定如何生成字符串来存储变量。
再次,我不是一个程序员,所以我很抱歉,如果有的话,我说没有任何意义,我不是在行话或任何十分精通。
感谢您提供的任何和所有帮助!
实际上,为此使用栅格函数要容易得多。我假设你正在使用ncdf?你可以发布结果print.ncdf(NC)? – mdsumner 2015-04-05 21:53:19
当然,结果如下:[1]“文件netcdf-atls04-20150304074032-33683-0853.nc有3个维度:” [1]“经度大小:240” [1]“纬度大小:121” [ 1]“time Size:31” [1]“------------------------” [1]“file netcdf-atls04-20150304074032- 33683-0853。nc有53个变量:“然后继续列出变量short和longnames以及它们的缺失值,它们全部是-32767 – 2015-04-05 21:56:34
并且是的,我正在使用ncdf软件包 – 2015-04-05 21:57:58