![](/img/trans.png)
[英]How to revalue elements in factor based on values of arguments, passed to the function in 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.