x [[i]]中的错误:级别2的递归索引失败

时间:2018-09-06 06:46:52

标签: r recursion

我是R的新手,并且堆栈溢出。我已经在网上搜索过,但是找不到我的问题的答案。我想创建一个从列表中提取并替换列表中条目的循环。

(x<-list(1:5,NULL))

  rpl<- function(x){
      for(i in x){
        if(x[[i]]==1)
          x[[i]]<-25
      }

  }  

1 个答案:

答案 0 :(得分:1)

x<-list(1:5,NULL)

lapply(x, function(el) {
    if(is.null(el)) el else {
        ifelse(el %in% 1, 25, el)
    }
    })

#[[1]]
#[1] 25  2  3  4  5

#[[2]]
#NULL

使用lapply处理并返回列表。 最好使用%in%,因为==会因缺少值而失败。