簡體   English   中英

重新映射 R function 中的因子水平甚至更容易

[英]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.

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