【发布时间】:2015-03-24 14:35:52
【问题描述】:
我试图将一些连续整数转换为分类范围,但发生了一些我不明白的事情。虽然我固定得到我想要的,但我仍然不明白为什么会这样。
变量是一些从0到12的整数,下面的代码将10,11,12从5+类别中移出。
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain==0]<-"0"
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain==1]<-"1"
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain==2]<-"2"
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain==3]<-"3"
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain==4]<-"4"
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain>=5]<-"5+"
py2$Daily.Whole.Grain<-as.factor(py2$Daily.Whole.Grain)
但是当我更改转换顺序时,它包括10,11,12。
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain>=5]<-"5+"
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain==0]<-"0"
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain==1]<-"1"
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain==2]<-"2"
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain==3]<-"3"
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain==4]<-"4"
谁能解释一下,为什么它会留下两位数的整数? 非常感谢。
【问题讨论】:
-
您将变量更改为
character,您可以检查"10" > "5",它将给出FALSE,因此没有10、11和12(但@ 987654336@ 将包括在内)。最好的办法是创建另一个变量而不是修改现有变量(您可以避免在 6 行中完成),或者如果您真的想修改变量,可以使用as.integer -
其实你可以通过
py2$Daily.Whole.Grain[py2$Daily.Whole.Grain>=5]<-"5+"得到你想要的,因为其他值只是转换为字符
标签: r continuous categorical-data