簡體   English   中英

R將級別分配給因子變量

[英]R assign levels to factor variable

我得到了一個類似於此的Excel表:

datos <- data.frame(op= 1:4, var1= c(4, 2, 3, 2))

現在,還有其他帶有opvar1鍵的表,它們恰好是分類變量。 假設加載它們后,它們變為:

set.seed(1)
op <- paste("op",c(1:4),sep="")
var1 <- sample(LETTERS, 19, replace= FALSE)

如您所見,數據框中有未使用的級別。 我要替換適當關聯級別的數字。 這是我嘗試過的:

datos[] <- lapply(datos, factor)
levels(datos$op) <- op
levels(datos$var1) <- var1

這將失敗,因為它會按字母順序重新排列因子並給出錯誤的輸出。 然后,我嘗試:

datos$var1 <- factor(datos$var1, levels= var1, ordered= TRUE)

但這會將所有內容都放在datos$var1作為NA (我想這是因為長度不匹配。

這樣做的正確方法是什么?

遵循@docendoDiscimus的善意建議,我將此答案發布以供將來參考:

對於問題中提供的數據:

datos$var1 <- factor(var1[datos$var1], levels= unique(var1))
datos
## op

請注意,應在datos$var1轉換為factor的情況下應用該解決方案(即,不應用代碼datos[] <- lapply(datos, factor)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM