将命名向量添加到列表中

Posted

技术标签:

【中文标题】将命名向量添加到列表中【英文标题】:Add named vector to a list 【发布时间】:2012-02-20 08:31:25 【问题描述】:

这是非常基本的,但我似乎无法弄清楚

假设我有一个变量条目列表:

lst <- list(a=1:4, b=rep('k', 5), c=3)

如果我想用指定的名称向它添加一个向量,我应该可以这样做:

c(f=1:5, lst)

但不是创建一个名为“f”的条目,其中包含 1 2 3 4 5,而是创建五个条目 (f1 - f5),每个条目包含一个数字。

如何抑制这种行为?

我知道我可以使用

lst$f <- 1:5

但我想在函数调用中附加列表...

【问题讨论】:

【参考方案1】:

f 变成一个列表,然后将其连接起来:

c(list(f=1:5), lst)

【讨论】:

【参考方案2】:

更通用的解决方案是附加:

append(lst, list(f=1:5), after=0)# after - position to append

【讨论】:

【参考方案3】:

你可以这样做:

lst[[key]] <- any_object

(注意双方括号[[]]

any_object 当然可以是向量。

即使key 的确切值存储在变量中并且您事先不知道它,或者如果它是在for 循环中迭代的变量,此方法也可以使用:

count <- list()
for (k in c("boys","girls","other")) 
  count[[k]] <- sum(data == k)

【讨论】:

【参考方案4】:

这是一个将一个(或多个)项目附加到列表的简单函数:

lappend <- function (lst, ...)
lst <- c(lst, list(...))
  return(lst)


> a <- list()
> a
list()

> lappend(a,c(1,2,3))
[[1]]
[1] 1 2 3

> lappend(a, c(4,5,6), c(7,8,9))
[[1]]
[1] 4 5 6

[[2]]
[1] 7 8 9

希望有帮助!! 再见。

【讨论】:

以上是关于将命名向量添加到列表中的主要内容,如果未能解决你的问题,请参考以下文章

如何将命名向量作为行添加到数据框中,根据列名顺序重新排序?

双向将字符串的“虚拟”列表绑定到列

Pandas 将具有多个值的行数据合并到列的 Python 列表中

如何使用R [list]将列表的名称插入到列中

css 将边界半径添加到列

python数据库将+1添加到列