10

ここにあるのはlist1、2 つの要素だけです。" name" と " age" です。すべての要素に 2 つの値があります。すべての要素に新しい値を追加したいと思います。

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

もっと簡単な方法はありますか?

4

3 に答える 3

7

このソリューションは、任意の長さのリストに対して機能します。

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
于 2012-11-07T07:55:16.530 に答える
-1

それはあなたが何をしたいかによって少し異なります。リスト内の各要素に異なる値を追加する場合、最も簡単な方法は次のとおりだと思います。

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"))
于 2012-11-07T06:22:21.280 に答える