将新元素添加到列表列表中(在R中)

g_p*_*ffo 6 r list

我通过以下方式创建列表列表:

 key<-112233
 list1 <- list(a = 2, b = 3)
 list2 <- list(c = "a", d = "b")
 mylist <- list(list1, list2)
Run Code Online (Sandbox Code Playgroud)

然后,我想在第二个列表中添加一个新对,但我想键入key以前定义的值.当我做

 mylist[[2]]$key<-6
Run Code Online (Sandbox Code Playgroud)

我明白了

$c
[1] "a"

$d
[1] "b"

$key
[1] 6
Run Code Online (Sandbox Code Playgroud)

而不是

$c
[1] "a"

$d
[1] "b"

$112233
[1] 6
Run Code Online (Sandbox Code Playgroud)

我尝试使用get或许多可能的其他组合使用[][[]]似乎没有任何工作.请指教.

use*_*710 7

key<-"112233"
list1 <- list(a = 2, b = 3)
list2 <- list(c = "a", d = "b")
mylist <- list(list1, list2)
mylist[[2]][key]<-6

[[1]]
[[1]]$a
[1] 2

[[1]]$b
[1] 3


[[2]]
[[2]]$c
[1] "a"

[[2]]$d
[1] "b"

[[2]]$`112233`
[1] 6
Run Code Online (Sandbox Code Playgroud)

根据@ user20650的评论更新:您可以执行以下操作:而不是在开头将变量键转换为字符串:

mylist[[2]][as.character(key)] <- 6
Run Code Online (Sandbox Code Playgroud)

  • 打我不到一分钟!是的,只要`key`是一个字符,这就可以正常工作.如果`key`是数字,那么也会创建列表中的所有中间元素(使用NULL值). (3认同)