簡體   English   中英

有條件地重新評估R中的因子

[英]Conditionally Revalue a Factor in R

這個答案可能很明顯(我希望是這樣),但我只是找到了復雜的解決方案。 我想做的是根據另一個因素的水平有條件地重新評估一個因素。

以下是使用mtcars數據集的示例:

data(mtcars)
mtcars$gear <- as.factor(mtcars$gear)
mtcars$am <- as.factor(mtcars$am)

table(mtcars$gear, mtcars$am) # examining the levels
levels(mtcars$gear)
# [1] "3" "4" "5"
levels(mtcars$am)
"0" "1"

現在在那些檔位為“5”的汽車中,我如何為“am”等級為“1”的車輛分配一個新的“檔位”“6”,同時保留因子等級“3”,“ 4“,”5“代表”齒輪“? 這是一個更簡單的例子,但考慮到我的數據集的復雜性,我更喜歡將向量保持為因子(例如,不轉換為數字和返回)。

齒輪開始時沒有“6”級別,因此您需要創建一個:

levels(mtcars$gear) <- c(levels(mtcars$gear), "6")

然后你可以用[<-函數:有條件地賦值:

mtcars$gear[ mtcars$am==1 ] <- "6"
table(mtcars$gear, mtcars$am)

     0  1
  3 15  0
  4  4  0
  5  0  0
  6  0 13

如果因子屬性中沒有相應的“級別”,則無法為因子變量賦值。

暫無
暫無

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

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