我对数据帧类型的 [1]、[1,]、[,1]、[[1]] 的区别感到困惑。
据我所知, [1,] 将获取 a 的第一行matrix
, [,1] 将获取第一列。[[1]] 将获取 a 的第一个元素list
。
但我检查了 的文件data.frame
,上面写着
数据框是具有唯一行名称的相同行数的变量列表
然后我输入了一些代码来测试用法。
>L3 <- LETTERS[1:3]
>(d <- data.frame(cbind(x=1, y=1:10), fac=sample(L3, 10, replace=TRUE)))
x y fac
1 1 1 C
2 1 2 B
3 1 3 C
4 1 4 C
5 1 5 A
6 1 6 B
7 1 7 C
8 1 8 A
9 1 9 A
10 1 10 A
> d[1]
x
1 1
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
>d[1,]
x y fac
1 1 1 C
>d[,1]
[1] 1 1 1 1 1 1 1 1 1 1
>d[[1]]
[1] 1 1 1 1 1 1 1 1 1 1
让我感到困惑的是:[1,] 和 [,1] 仅用于matrix
. [[1]] 只在 中使用list
,[1] 在 中使用vector
,但为什么它们都在数据框中可用?
有人可以解释这些用法的区别吗?