2016-02-04 111 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好的,谢谢。帮了很多 –