age*_*nis 10 r rename list append
我有一个现有的列表:
mylist = list("player1"="Mike", "player2"="John")
Run Code Online (Sandbox Code Playgroud)
我想附加一个新元素“Sam”,其名称属性如“player17”,只不过该名称存储在变量中:
new_name="player17"
Run Code Online (Sandbox Code Playgroud)
所以我尝试不同的语法但没有成功:
c(mylist, new_name="Sam")
with(mylist, assign(new_name, "Sam"))
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以一步完成此操作(我知道我也可以使用该函数分两步更改每个元素的名称names)。
编辑:在我的真实数据中,列表的元素可以是 data.frames。
要在键中附加值,我们可以
mylist[[key]] = c(mylist[[key]],'Sam')
Run Code Online (Sandbox Code Playgroud)
例如,
mylist = list("player1"="Mike", "player2"="John")
mylist[["player1"]] = c(mylist[["player1"]],'Sam')
mylist
#$player1
#[1] "Mike" "Sam"
#$player2
#[1] "John"
Run Code Online (Sandbox Code Playgroud)
如果密钥尚未使用,这也将起作用
new_name="player17"
mylist[[new_name]] = c(mylist[[new_name]],'Sam')
#$player1
#[1] "Mike" "Sam"
#$player2
#[1] "John"
#$player17
#[1] "Sam"
Run Code Online (Sandbox Code Playgroud)
编辑:根据更新,如果我们的列表中有数据帧,我们可以使用rbind而不是c
mylist=list(a = mtcars, b = mtcars*10)
mylist[["c"]] = rbind(mylist[["c"]], mtcars/10)
Run Code Online (Sandbox Code Playgroud)
这也适用于上面的例子。