R 中数据框的子集列
Subsetting columns from the data frame in R
关于 R 中的子集列,我有一个相对简单的问题。
我有两个数据框,dat1 和 dat2:
>dat1
cities countries areakm2 populationk
1 Shanghai China 2643 21766
2 Beijing China 1368 21500
3 NYC USA Unknown 8406
4 LA USA 1302 3884
5 London UK 1737 Unknown
6 Manchester UK 116 255
> dat2
Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
然后,如果我想从 dat1 中提取第一列的子集,我会得到以下结果:
> dat1[,1]
[1] Shanghai Beijing NYC LA London Manchester
Levels: Beijing LA London Manchester NYC Shanghai
> class(dat1[,1])
[1] "factor
但是,如果我对 dat2 做同样的事情,我会得到一个向量,而不是一个因子。
> dat2[,1]
[1] 41 36 12 18 NA
> class(dat2[,1])
[1] "integer"
我不明白这两种情况有什么区别。我认为这与数据类型有关(在 dat1 中第一列由字符组成,而在 dat2 中为整数)
谢谢
其实都是向量。一个因素和一个整数。如果您希望 R 将它们视为字符(另一种类型,如因子或整数),您应该使用
stringsAsFactors = FALSE
在创作你的data.frame
关于 R 中的子集列,我有一个相对简单的问题。
我有两个数据框,dat1 和 dat2:
>dat1
cities countries areakm2 populationk
1 Shanghai China 2643 21766
2 Beijing China 1368 21500
3 NYC USA Unknown 8406
4 LA USA 1302 3884
5 London UK 1737 Unknown
6 Manchester UK 116 255
> dat2
Ozone Solar.R Wind Temp Month Day
1 41 190 7.4 67 5 1
2 36 118 8.0 72 5 2
3 12 149 12.6 74 5 3
4 18 313 11.5 62 5 4
5 NA NA 14.3 56 5 5
然后,如果我想从 dat1 中提取第一列的子集,我会得到以下结果:
> dat1[,1]
[1] Shanghai Beijing NYC LA London Manchester
Levels: Beijing LA London Manchester NYC Shanghai
> class(dat1[,1])
[1] "factor
但是,如果我对 dat2 做同样的事情,我会得到一个向量,而不是一个因子。
> dat2[,1]
[1] 41 36 12 18 NA
> class(dat2[,1])
[1] "integer"
我不明白这两种情况有什么区别。我认为这与数据类型有关(在 dat1 中第一列由字符组成,而在 dat2 中为整数)
谢谢
其实都是向量。一个因素和一个整数。如果您希望 R 将它们视为字符(另一种类型,如因子或整数),您应该使用
stringsAsFactors = FALSE
在创作你的data.frame