[英]remapping factor levels in R function or even easier
我正在編寫很多像這樣乏味的重新映射代碼來調整因子水平:
在 function 中重新映射甚至更容易
levels(temp$sex)[levels(temp$sex)=="1"] <- "male"
我正在考慮寫一個 function 並傳入:
col_name (e.g. sex)
old_value (e.g. 1)
new_value (e.g. male)
什么是 function,它使 col_name 動態化,還是有更好的方法來重新映射因子級別?
謝謝!
它可能對fct_recode
有用
library(forcats)
fct_recode(temp$sex, male = "1", female = "2")
或者也可以傳遞一個命名向量
levels <- c(male = "1", female = "2")
fct_recode(temp$sex, !!!levels)
可能是這樣的,
# set.seed(1)
sex <- factor(sample(1:2,10,T))
sex
# [1] 1 2 1 1 2 1 1 1 2 2
# Levels: 1 2
old_values <- levels(sex)
new_values <- c('M', 'F')
sex <- factor(sex, levels=old_values , labels=new_values)
sex
# [1] M F M M F M M M F F
# Levels: M F
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.