距离间隔的虚拟变量

时间:2013-07-01 13:34:09

标签: r variables distance proximity

在我的数据集中,我想创建虚拟变量,以识别变量在特定距离内的影响。

距离应为:

0-100 meters

100-200 meters

200-300 meters

高达1000米所以在所有10个虚拟变量中都是如此。

我该怎么做

提前谢谢

编辑:

当我使用虚拟变量运行回归时,我无法在回归中获得0-100米的间隔。它被遗漏了。关于为什么的任何想法?

提前致谢

2 个答案:

答案 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)

您还可以使用recodecar包中的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