我一直在教导的是,向量是一维的,数据帧是二维的。因此,对向量索引需要一个数字 - 例如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
给出{{1}}第一列的新人?
答案 0 :(得分:4)
数据框是列表。一种特殊类型的列表,可以肯定,但它们是列表。 x[1]
是列表的第一个元素。 x[[1]]
是列表第一个元素的内容,当列表是数据框时,x[,1]
也是如此。将输出与显式列表进行比较:
> x <- data.frame(x = 1, y = 2, z = 3)
> x[1]
x
1 1
> x[[1]]
[1] 1
> x[,1]
[1] 1
> y = list(x=1, y=2, z=3)
> y[1]
$x
[1] 1
> y[[1]]
[1] 1