df [i]做什么?

时间:2016-12-20 19:50:42

标签: r

我一直在教导的是,向量是一维的,数据帧是二维的。因此,对向量索引需要一个数字 - 例如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]包含行名和列名。

无论如何,这与我一直在说的消息相矛盾 - 数据帧需要两个数字来进行索引。这个陈述不正确吗?如果它是正确的,那么如何解释那些Rx[1]为什么x给出{{1}}第一列的新人?

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