有没有你不能列入清单的东西?

时间:2016-07-11 08:58:26

标签: r list

是否有无法放入R列表的内容 - 如果是,或者不是怎么来的?是否存在不应出于特定原因列入列表的内容 - 速度,效率,内存占用,错误倾向,......?

到目前为止,我还没有发现任何无法放入列表的内容(向量,数据框架,环境......),但我不确定,我希望得到更深入的理解。

1 个答案:

答案 0 :(得分:1)

任何内容都可以放入列表,当R需要完全不同类型的多个返回值时,R中的一种广泛使用的做法是返回列表。例如,考虑线性模型函数lm的返回值,返回类lm的对象,这只是具有附加类赋值的列表。它包含数字向量,如coefficientscall对象,包含函数的原始调用 - 完全不同数据类型的示例。请考虑str(lm(Sepal.Length ~ Sepal.Width, iris))以查看lm返回了多少种不同的数据类型。

列表中不应包含的内容:具有相同类型的所有类型的数据点。这些特别是numericcharacterlogic值的向量。只要有可能,使用向量而不是列表,因为对向量的操作通常要快得多。许多数据类型会使c运算符超载并提供类似矢量的数据类型,例如时间戳为POSIXct

> str(c(Sys.time(), Sys.time() + 60))
 POSIXct[1:2], format: "2016-07-11 11:58:45" "2016-07-11 11:59:45"

这些类似矢量的对象应该是首选,而不是list这样的值。