2013-07-01 61 views
0

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

的距离应该是:

0-100 meters 

100-200 meters 

200-300 meters 

可达1000米,因此所有在所有10个虚拟变量。

我怎么这个

预先感谢您

编辑:

当我运行与虚拟变量回归,我不能得到的间隔在0-100米回归。它被遗漏了。任何想法为什么?

在此先感谢

回答

2

你是否在寻找cut功能:

x <- 1:1000 
cut(x,c(min(x),100,200,300,max(x))) 

编辑

要获得10个级别:

cut(x,seq(min(x),max(x),100)) 
+0

不应该被“cut(x,(0:10)* 100)'来获得十个级别吗? – rinni

+0

@rinni谢谢。我编辑我的答案。 – agstudy

+0

谢谢你们俩。这解决了我的问题。 – Kasper

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 

注:你可以操纵每个类别的最小值和最大值。例如,第一类中的max不是100,您可以根据数据结构编写99.999。

还有ifelse功能,你可以使用,如果你只有几个类别。请参阅here