2013-07-01 57 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