在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