【问题标题】:How to append a vector to a list of vectors in R?如何将向量附加到 R 中的向量列表中?
【发布时间】:2015-03-31 11:10:05
【问题描述】:

这个问题与an earlier one 相关,除了那里的答案(使用c() 函数)正是对我有用。

首先我创建一个向量列表,然后创建一个附加向量。

a_list <- lapply(mtcars, as.integer)
junk <- c(1:length(a_list[[1]]))

现在,如果使用c(a_list, junk)(如前一个问题的答案中所建议的那样),我得到的答案与我说a_list[["junk"]] &lt;- junk 得到的答案完全不同(后者产生了预期的结果)。似乎前一种方法添加的是as.list(junk)

如何使用c() 添加junk 而不将其转换为as.list(junk) 的结果?

【问题讨论】:

    标签: r


    【解决方案1】:

    以这种方式使用list()c(a_list, junk=list(junk))

    在试图弄清楚上面有问题的场景中添加了什么(为了更好地表达我的问题),我意识到 listas.list 做了非常不同的事情。通过将垃圾变成单元素列表(使用list()),它会以所需的方式“按原样”添加。

    实际上,这被隐藏在对 Dirk Eddelbuettel 的回答的“显示更多 cmets”评论中,并且(更尴尬地)隐藏在对 c() 本身的帮助中。引用帮助:

    ## do *not* use
    c(ll, d = 1:3) # which is == c(ll, as.list(c(d = 1:3))
    ## but rather
    c(ll, d = list(1:3))  # c() combining two lists
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-17
      • 2015-05-13
      • 1970-01-01
      • 2020-02-07
      • 2018-08-13
      • 2014-04-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多