列表和模式为列表的向量有什么区别?

时间:2019-08-19 16:37:16

标签: r

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

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

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

  

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

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

1 个答案:

答案 0 :(得分:7)

我会说它们是相同的:

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()