这里是list1
,其中只有两个元素 - “name
”和“age
”,每个元素中都有两个值,现在我想添加新值每个元素,
list1<-list(name=c("bob","john"),age=c(15,17))
list1
$name
[1] "bob" "john"
$age
[1] 15 17
list1[[1]][3]<-"herry"
list1[[2]][3]<-17
list1
$name
[1] "bob" "john" "herry"
$age
[1] 15 17 17
有更简单的方法吗?
答案 0 :(得分:0)
这取决于你想做什么。如果要为列表中的每个元素添加不同的值,我认为最简单的方法是:
Vec <- c("herry",17,...)
i=0
list1 <- lapply(list1, function(x) {i=i+1 ; append(x,Vec[i])})
如果列表中的每个向量具有相同的长度,那么您也可以使用一些快捷方式。 如果要为列表中的每个元素添加相同的值:
list1 <- lapply(list1, function(x) append(x, "NewEl"))
答案 1 :(得分:0)
rlist库提供了@Sven Hohenstein提供的解决方案的替代方法。这不是更好,但阅读起来更直观。如果密钥相同,则对IMHO进行编程会容易一些。
library(rlist)
list1 <- list.append(list1, key=value)
请注意,密钥编写时不带引号。因此,在您的示例中,它将是:
library(rlist)
list1 <- list.append(list1, henry=17)