2015-05-06 4 views
-1

Как я могу указать R для чтения значений в векторе rec (например, 159 472 581 1236 ...) в цикле for, а не в длину вектора (1 : 257)?for-loop R: seq (вдоль = x)

Мой код:

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.

+0

Что должна делать эта линия? 'rec = int [1: 257] 159 472 581 1236 1295 1491 ....' – zx8754

+0

Эта строка ничего не делает. это вектор, который я хочу использовать в цикле. Я просто вложил его туда, чтобы предоставить всю информацию – sue

+0

Может быть, вам не нужен 'for loop', это работает:' lon <- get.var.ncdf (nc, "lon", c (rec, 1), с (1,1)) '? – zx8754

ответ

0

Вы можете прямо указать вектор, как это в R. Попробуйте это

for (i in rec){ 
lon[i]<-get.var.ncdf(nc, "lon", c(i,1), c(1,1)) 
} 

Этот код работает для меня.

+0

это вычисляет вектор с 29933 значениями, а из них 29676 - НС. Я хотел избежать всех этих НС. Это возможно? – sue

+0

@sue Может быть 'for (i in rec [! Is.na (rec)])'? – zx8754

+0

все еще возвращает вектор со всеми NA – sue

Смежные вопросы