在R中列表中的每个元素中添加新值?
这里是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
有更简单的方法吗?
此解决方案适用于任何长度的列表:
values <- list("herry", 17) # a list of the new values
list1 <- mapply(append, list1, values, SIMPLIFY = FALSE)
# $name
# [1] "bob" "john" "herry"
# $age
# [1] 15 17 17
这取决于你想要做什么。 如果你想为列表中的每个元素添加一个不同的值,我认为最简单的方法是:
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"))
链接地址: http://www.djcxy.com/p/65723.html
上一篇: To add new value in every element in list in R?
下一篇: eclipse C project shows errors (Symbol could not be resolved) but it compiles