0

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

距离应该是:

0-100 meters

100-200 meters

200-300 meters

高达 1000 米,因此总共有 10 个虚拟变量。

我该怎么做呢

先感谢您

编辑:

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

提前致谢

4

2 回答 2

2

您是否在寻找cut功能:

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

编辑

要获得 10 个级别:

cut(x,seq(min(x),max(x),100))
于 2013-07-01T13:39:44.300 回答
0

您还可以使用package in 中的recode函数。carR

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如果您只有几个类别,也可以使用该功能。看这里

于 2013-07-01T14:22:54.560 回答