Две команды делают то же самое, но не совсем, особенно если у вас есть сохранить первоначальный порядок факторов. В некоторых случаях вы не можете использовать: as.factor(as.character(f))
.См .:
par(mfrow=c(2,3))
f <- factor(c("D", "B", "C", "K", "A"), levels=c("K", "B", "C", "D"))[2:4]
plot(f, main="Original factor")
f.fc <- as.factor(as.character(f))
plot(f.fc, main="as.factor(as.character(f))")
f.d <- drop.levels(f)
plot(f.d, main="drop.levels(f)")
f.d <- drop.levels(f, reorder=FALSE)
plot(f.d, main="drop.levels(f, reorder=FALSE))")
f.f <- factor(f)
plot(f.f, main="factor(f)")
![alt text](https://i.stack.imgur.com/16GYI.png)
as.factor(as.character(f))
и drop.levels(f)
делает то же самое, и они не сохраняют первоначальный порядок факторов, они оба выравнивают текст в ABCпорядок.Если вы хотите сохранить порядок, вы можете использовать опцию reorder=FALSE
в drop.levels()
.
Это поведение по умолчанию factor()
.