在R中,typeof(data.frame)显示为"list"。

33

有人能解释一下为什么在R中typeof(data.frame)会显示list吗?相比之下,class给出了预期的类型。例如,使用内置数据框mtcars进行演示。

> typeof(mtcars)
[1] "list"
> class(mtcars)
[1] "data.frame"

任何关于如何使用 typeof 与 class 的提示?
1个回答

17

data.frame 和 data.table 都是由项目(向量)的集合(列表)组成的,每个项目具有相同的长度(即每列在 R 内部都是列表中的一个项目)。这就是为什么与矩阵不同,列可以具有不同的类别。

干杯。


14
不是因为你,而是因为R。 - jessexknight
1
我在过去的一周里已经说了很多次“wtf R”,但这很有启发性,谢谢。我可以把这加到我的挫败感中,因为需要检查一个对象是S3、S4还是RC对象才能检查它的方法。 - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接