【问题标题】:What's the difference between a list and a vector whose mode is list?列表和模式为列表的向量有什么区别?
【发布时间】:2019-08-19 16:37:16
【问题描述】:

标题基本上说明了一切。我无法弄清楚使用 vector(mode="list") 初始化向量和使用 list() 初始化列表之间的区别。

签名有一些细微差别,list() 可以接受 value 参数或 tag = value 参数,而 vector() 不能。

然后是list()documentation的以下引用:

R 内部几乎所有列表都是通用向量

那么除了可以用标签和值初始化列表之外,还有什么实际区别吗?

【问题讨论】:

    标签: r


    【解决方案1】:

    我会说它们是一样的:

    identical(list(),vector(mode="list", length=0))
    ## [1] TRUE
    

    (另请参阅this question 关于列表 R 中的向量这一令人困惑的事实:通常当 R 用户提到“向量”时,它们实际上意味着 原子向量...)

    根据我的经验,vector(mode="list",...) 最常见的用例是您想要初始化一个 长度>0 的列表。 vector(mode="list",10) 可能比 replicate(10,NULL) 更有表现力。如果你想创建一个长度为 0 的列表,我看不出有任何理由使用 vector() 而不是 list()

    【讨论】:

      猜你喜欢
      • 2013-04-03
      • 2017-03-03
      • 2012-01-25
      • 2015-06-07
      • 2010-11-05
      • 2010-10-12
      • 2012-12-09
      相关资源
      最近更新 更多