【问题标题】:Inserting elements in an R list在 R 列表中插入元素
【发布时间】:2011-08-19 22:08:28
【问题描述】:

我想在“字典”中存储一些条目,以便我可以按名称检索它们。我可以像这样间接地形成类似的东西:

> a = list(c(1,2),c(9,9,0,0))
> names(a) = c("first","second")
> a
$first
[1] 1 2

$second
[1] 9 9 0 0

但是,我不能通过像这样简单地按名称插入它们来做同样的事情:

> a=list()
> a["first"] = c(1,2)
Warning message:
In a["first"] = c(1, 2) :
  number of items to replace is not a multiple of replacement length
> a
$first
[1] 1

为什么会这样,我应该使用什么语法按名称将向量或矩阵等对象插入到列表中?

【问题讨论】:

    标签: list r dictionary vector


    【解决方案1】:

    您的问题是您使用的是[ 而不是[[。这应该有效:

    a[['first']] <- c(1,2)
    

    应该这样:

    a$first <- c(1,2)
    

    记住,[ 给你一个子列表,而[[ 访问特定的元素

    【讨论】:

      【解决方案2】:

      你有一个很好的答案。这是一个等效的答案:

       a=list()
       a["first"] = list(c(1,2))
       a
      # $first
      # [1] 1 2
      

      因此,要扩展 joran 的完美答案,您实际上是在使用 [&lt;- 作为函数,它既提供(通过[)也接收(通过[&lt;-)列表。

      仅仅因为一个函数返回了一些东西,并不能保证它会设置一些东西。

      【讨论】:

      • “有点切线”?!因素的东西似乎与问题无关......但是如果你发布一个关于因素的适当问题我可能会告诉你;-)
      猜你喜欢
      • 1970-01-01
      • 2022-10-17
      • 2020-07-14
      • 2012-03-18
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多