【问题标题】:Update first value in each list element in R更新 R 中每个列表元素中的第一个值
【发布时间】:2016-05-31 07:49:58
【问题描述】:

我想用同一元素中的第二个值替换每个列表元素中的第一个值。

例如,我想要一个将 lst 转换为 lst2 的函数

lst<-list(c(0:4),c(5:9))
lst

lst2<-list(c(1, c(1:4)),c(6,c(6:9)))
lst2

我知道我能做到

lst[[1]][1]=lst[[1]][2]
lst[[2]][1]=lst[[2]][2]

但我想要一个遍历所有列表元素的函数。我用 lapply 尝试了各种事情(都没有成功),例如:

lapply(list, function(x) x[1]=x[2])

【问题讨论】:

    标签: r list


    【解决方案1】:

    我们可以使用lapply 来循环list,如果我们使用匿名函数调用,我们需要返回x

    lstN <- lapply(lst, function(x) {x[1] <- x[2]
                             x})
    identical(lst2, lstN)
    #[1] TRUE
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 2017-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-10
      相关资源
      最近更新 更多