标题基本上说明了一切。我很难弄清楚用vector(mode="list")
初始化向量和用list()
初始化列表之间的区别。
签名上有一些细微差别,list()
可以接受value
个参数或tag = value
个参数,而vector()
不能。
然后是list()
documentation的以下引文:
R中几乎所有内部列表都是通用向量
除了可以使用标签和值初始化列表之外,还有什么实际区别吗?
答案 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()
。