代码之家  ›  专栏  ›  技术社区  ›  agenis

在变量中设置名称时,使用新元素追加列表

  •  4
  • agenis  · 技术社区  · 8 年前

    我有一个现有的列表:

    mylist = list("player1"="Mike", "player2"="John")
    

    new_name="player17"
    

    所以我尝试了不同的语法,但没有成功:

    c(mylist, new_name="Sam")
    with(mylist, assign(new_name, "Sam"))
    

    是否有一种方法可以在一个步骤中完成此操作(我知道,我也可以在使用函数的两个步骤中更改每个元素的名称) names ).

    编辑:

    1 回复  |  直到 8 年前
        1
  •  3
  •   Ronak Shah    8 年前

    要在键中附加值,我们可以

    mylist[[key]] = c(mylist[[key]],'Sam')
    

    例如

    mylist = list("player1"="Mike", "player2"="John")
    mylist[["player1"]] = c(mylist[["player1"]],'Sam')
    
    mylist
    #$player1
    #[1] "Mike" "Sam" 
    
    #$player2
    #[1] "John"
    

    如果尚未使用该密钥,这也将起作用

    new_name="player17"
    mylist[[new_name]] = c(mylist[[new_name]],'Sam')
    
    #$player1
    #[1] "Mike" "Sam" 
    
    #$player2
    #[1] "John"
    
    #$player17
    #[1] "Sam"
    

    编辑: rbind c

    mylist=list(a = mtcars, b = mtcars*10) 
    mylist[["c"]] = rbind(mylist[["c"]], mtcars/10)
    

    这也适用于上述示例。