在我的数据集中,我想创建虚拟变量来识别变量在特定距离内的影响。
距离应该是:
0-100 meters
100-200 meters
200-300 meters
高达 1000 米,因此总共有 10 个虚拟变量。
我该怎么做呢
先感谢您
编辑:
当我使用虚拟变量进行回归时,我无法在回归中得到 0-100 米的间隔。它被遗漏了。关于为什么的任何想法?
提前致谢
您是否在寻找cut
功能:
x <- 1:1000
cut(x,c(min(x),100,200,300,max(x)))
编辑
要获得 10 个级别:
cut(x,seq(min(x),max(x),100))
您还可以使用package in 中的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
注意:您可以操纵每个类别的最小值和最大值。例如,根据您的数据结构,您可以编写 99.999,而不是第一类中的 100。
ifelse
如果您只有几个类别,也可以使用该功能。看这里