首页 > 解决方案 > 如何遍历循环

问题描述

我想自动执行此操作,而不是输入 1500 次。

n1 <- spei[sp_latong[[1]]$lon_indx,sp_latong[[1]]$lat_indx,ind_time]
.
.
.
n1500 <- spei[
  sp_latong[[1500]]$lon_indx,
  sp_latong[[1500]]$lat_indx,
  ind_time ]  
         ### create final data
dat1 <- cbind(n1,n2,...,n1500)

我尝试使用循环,我有以下代码:

    t <- 0
    for(i in 1: length(sp_latong){
    t[[i]] < - 
    spei[sp_latong[[i]]$lon_indx,sp_latong[[i]]$lat_indx,ind_time]  
    }

我收到一条错误消息

spei[sp_latong[[i]]$lon_indx, sp_latong[[i]]$lat_indx] 错误:维数不正确。

我不得不将 t[[i]] 更改为 t[i] 和 t,我得到了相同的错误消息。任何建议将被认真考虑。

注意: spei 是一个大数组 sp_latong 是列表

标签: riteration

解决方案


我根据 Dave2e 的想法用下面的代码修复了它

    t<- list()
    for(i in 1:length(sp_latong)){

    t[[i]] <- spei[sp_latong[[i]]$lon_indx,sp_latong[[i]]$lat_indx,ind_time]

    }

@ Dave2e 非常感谢。


推荐阅读