![](/img/trans.png)
[英]What is the difference between as.character() and as( ,“character”) in R
[英]What is the difference between drop.levels(x) in the gdata package and as.factor(as.character(x))?
作為問題,我可以看到后一種方法的速度更高,為什么要使用第一種? 謝謝。
如果您嘗試刪除未使用的級別,您需要做的就是:
x <- factor(x)
R中的新功能(從版本2.12.0開始)是函數droplevels()
來做同樣的事情。 它實現為:
> base:::droplevels.factor
function (x, ...)
factor(x)
<environment: namespace:base>
所以我會優先使用該功能。 它是R中的通用函數,具有類"factor"
和"data.frame"
類對象的方法,后者在數據框中有許多因素需要等級下降時很有用。
這兩個命令完全相同但不完全相同,特別是當你保留了因子的原始順序時。 在某些情況下,您不能使用: 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)")
as.factor(as.character(f))
和drop.levels(f)
做同樣的事情並且它們不保留因子的原始順序,它們都以ABC順序重新調整文本。 我想保留你可以在drop.levels()
使用reorder=FALSE
選項的reorder=FALSE
。
這是factor()
的默認行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.