2016-03-20 51 views
0

我注意到,在R中,如果使用级别来更改因子列中级别的顺序,则实际上会更改数据的内容。例如:设置级别更改数据内容

test <- data.frame(name=c("A","B","C"), age=c(20,21,22)) 
test$name <- as.factor(test$name) 
levels(test$name) <- c("C","B","A") 

然后,在测试中,其变成C具有20岁,A具有22岁的,而不是其中A具有20岁的原始内容和C具有年龄22.

我怎样才能改变因素的水平而不改变实际内容?

回答

1

我们可以指定levelsfactor通话

test$name <- factor(test$name, levels= c("C", "B", "A")) 

它只会改变levels,而不是数据的顺序

test$name 
#[1] A B C 
#Levels: C B A