【发布时间】:2015-05-06 10:54:54
【问题描述】:
如何告诉 R 在 for 循环中读取向量 rec 中的值(例如 159 472 581 1236 ...)而不是向量的长度 (1:257) ?
我的代码是:
rec=int [1:257] 159 472 581 1236 1295 1491 ....
lon=matrix(data=NA, nrow=length(rec), ncol=1)
lat=matrix(data=NA, nrow=length(rec), ncol=1)
for (i in seq(along=rec)){
lon[i]<-get.var.ncdf(nc, "lon", c(i,1), c(1,1))
}
for (i in seq(along=rec)){
lat[i]<-get.var.ncdf(nc, "lat", c(i, 1), c(1,1))
}
coordstart<-cbind(lon, lat)
代码有效,但计算出的 lon 和 lat 值与 i 1:257 相关。我需要它们与向量rec 的实际值相关。
【问题讨论】:
-
这条线应该做什么?
rec=int [1:257] 159 472 581 1236 1295 1491 .... -
这一行不做任何事情。它是我想在循环中使用的向量。我只是将其粘贴在那里以提供所有信息
-
也许你不需要
for loop,这行得通吗:lon <- get.var.ncdf(nc, "lon", c(rec,1), c(1,1))? -
我猜你想在 rec 处提取 nc 值并将其写入位置 i:
for (i in seq_along(rec)){ r = rec[i]; lon[i]<-get.var.ncdf(nc, "lon", c(r, 1), (1,1)) } -
@koekenbakker 非常感谢!这样就行了。