在我的数据集中,我想创建虚拟变量以识别某个距离内变量的影响。距离区间的虚拟变量
的距离应该是:
0-100 meters
100-200 meters
200-300 meters
可达1000米,因此所有在所有10个虚拟变量。
我怎么这个
预先感谢您
编辑:
当我运行与虚拟变量回归,我不能得到的间隔在0-100米回归。它被遗漏了。任何想法为什么?
在此先感谢
在我的数据集中,我想创建虚拟变量以识别某个距离内变量的影响。距离区间的虚拟变量
的距离应该是:
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))
您还可以使用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
不应该被“cut(x,(0:10)* 100)'来获得十个级别吗? – rinni
@rinni谢谢。我编辑我的答案。 – agstudy
谢谢你们俩。这解决了我的问题。 – Kasper