2016-02-04 161 views
4

我自學R幾周了。我遇到了一些我不明白的問題。所以,如果我說R語言編程

fert <- as.factor(c(50,20,10,10,20,50)) 
levels(fert) 

我得到

[1] "10" "20" "50" 

我得到,直到這一點。我不明白的是,如果我說

levels(fert)[fert] 

我得到

"50" "20" "10" "10" "20" "50" 

這是fert定義。我不明白這個[fert]事情的邏輯是什麼。

+0

@帕斯卡我搶先編輯他的問題,我相信他在看到輸出時實際上在做什麼。 –

回答

7

你有factor我假定,所以:因爲

as.numeric(fert) 
#[1] 3 2 1 1 2 3 
# corresponding to the labels of: 
# 50 20 10 10 20 50 

所以:

levels(fert)[c(3,2,1,1,2,3)] 
#[1] "50" "20" "10" "10" "20" "50" 

fert <- factor(c(50,20,10,10,20,50)) 
levels(fert) 
#[1] "10" "20" "50" 

因素存儲爲序列號與標籤,像

然後,

levels(fert)[fert] 
#[1] "50" "20" "10" "10" "20" "50" 
+0

ohhhhhh好的,謝謝。幫了很多 –