我想用同一元素中的第二个值替换每个列表元素中的第一个值。
例如,我想要一个函数将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(list, function(x) x[1]=x[2])
答案 0 :(得分:4)
我们可以使用lapply
循环遍历list
,如果我们使用匿名函数调用,则需要返回x
。
lstN <- lapply(lst, function(x) {x[1] <- x[2]
x})
identical(lst2, lstN)
#[1] TRUE