【发布时间】:2017-05-06 03:13:48
【问题描述】:
我一直在教的是向量是一维的,而数据框是二维的。因此,向量索引需要一个数字 - 例如,v[1] - 而数据帧索引需要两个数字 - 例如,df[1, 1]。
我从https://stackoverflow.com/a/13635514/3625022 了解到,例如df[1] 实际上显示了df 的第一列。例如,
> x <- data.frame(x = 1, y = 2, z = 3)
> x[1]
x
1 1
> x[,1]
[1] 1
我注意到它们略有不同,因为x[,1] 可能仅指第一列中的条目向量,而x[1] 包括行名和列名。
无论如何,这与我一直在说明的信息相矛盾 - 数据帧需要两个数字进行索引。这个说法不正确吗?如果正确,如何向R 的新手解释为什么x[1] 给出x 的第一列?
【问题讨论】:
-
data.frame 是一个继承自类列表的类。因此,列表子集适用于 data.frames。
-
R 中的一切都是一维的(据我所知)。 Data.frames 是列的列表;矩阵是形状看起来像别的东西的向量;等
-
@Frank 矩阵是具有 dim 属性的向量。不涉及“形状”。
-
@Frank 如果 OP 在教学,了解 R 数据结构的内部实现将是有利的。
-
intro R manual 非常枯燥,您可能已经知道其中的大部分内容,但其中充满了有用的见解。
标签: r