我刚从 R 开始,遇到了以下问题。
以相同的方式使用方括号对数据框进行子集化似乎会产生向量或数据框。为什么会有这种差异?下面是我尝试子集的两个数据框。
matching我用 子集的第一个数据框matching[,1],它给了我一个只有一列的数据框。
> attributes(matching)
$names
[1] "A" "B" "C" "D" "E" "F" "G" "H"
$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
[50] 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
$class
[1] "tbl_df" "tbl" "data.frame"
> matching[,1]
# A tibble: 67 x 1
A
<int>
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
# ... with 57 more rows
>
我子集的第二个数据框files,files[,1]它给了我一个向量
> attributes(files)
$names
[1] "names"
$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
[50] 50 51 52 53 54 55 56 57 58 59 60 61 62
$class
[1] "data.frame"
> files[,1]
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
[50] 50 51 52 53 54 55 56 57 58 59 60 61 62
第一个是用read_excelexcel 文件创建的,第二个是用data.frame()字符串向量创建的。
谢谢!