子集R中的数据帧中的列

弗拉基米尔·波斯维扬斯基(Vladimir Posvyanskiy)

关于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中,则是整数)

谢谢

万尼斯·罗西尔(Wannes Rosiers)

实际上,两者都是向量。因素之一和整数之一。如果您希望R将它们视为字符(其他类型,例如因数或整数),则应使用

stringsAsFactors = FALSE

在创建data.frame时

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章