在我的数据集中,我想创建虚拟变量,以识别变量在特定距离内的影响。
距离应为:
0-100 meters
100-200 meters
200-300 meters
高达1000米所以在所有10个虚拟变量中都是如此。
我该怎么做
提前谢谢
编辑:
当我使用虚拟变量运行回归时,我无法在回归中获得0-100米的间隔。它被遗漏了。关于为什么的任何想法?
提前致谢
答案 0 :(得分:2)
您在寻找cut
功能:
x <- 1:1000
cut(x,c(min(x),100,200,300,max(x)))
修改强>
获得10个级别:
cut(x,seq(min(x),max(x),100))
答案 1 :(得分:0)
您还可以使用recode
中car
包中的R
功能。
install.packages("car")
library(car)
x<-0:1000
y<-recode(x,"0:100=1;101:200=2;201:300=3;301:400=4;401:500=5;501:600=6;601:700=7;701-800=8;801:900=9;else=10")
Output:
> head(y)
[1] 1 1 1 1 1 1
> tail(y)
[1] 10 10 10 10 10 10
注意:您可以操纵每个类别的最小值和最大值。例如,在第一个类别中,不是100 for max,而是根据您的数据结构编写99.999。
如果只有少数类别,还可以使用ifelse
功能。见here