【问题标题】:Renaming factor levels in R with case_when用 case_when 重命名 R 中的因子水平
【发布时间】:2020-01-16 12:18:59
【问题描述】:

我正在尝试将我的因子变量中的级别从 levels(data$VAL_NETEJA) 得到:

"0 = PÈSSIMA GESTIÓ"     "1"   "2"  "3"  "4"  "5"   "6"  "7"  "8"  "9"  "10 = > >> > >EXCEL·LENT GESTIÓ" "NO HO SAP"  "NO CONTESTA"   

使用此代码

data %>%
filter(!is.na(VAL_NETEJA))%>%
transmute(VAL_NETEJA=case_when(
VAL_NETEJA == "10 = EXCEL·LENT GESTIÓ"~ "10",
VAL_NETEJA == "0 = PESSIMA GESTIÓ"~ "0",
TRUE ~ as.character(VAL_NETEJA)
))%>%

filter(!is.na(VAL_NETEJA))%>%
transmute(VAL_NETEJA=case_when(
VAL_NETEJA == "NO HO SAP"~ "NA",
VAL_NETEJA == "NO CONTESTA"~ "NA",
TRUE ~ as.character(VAL_NETEJA)
))%>%

它可以工作,"0 = PESSIMA GESTIÓ"~ "0" 除外。我试图尝试使用和不使用口音,但它仍然不会改变它。我可以使用类似于 contains 或以 for case_when 开头的函数以某种方式解决此问题吗?

【问题讨论】:

    标签: rename case-when factors levels recode


    【解决方案1】:

    所以,我将 0 作为基础并使用了以下代码:

    data$neteja_levels<-data %>%
    transmute(VAL_NETEJA=case_when(
    VAL_NETEJA == "10 = EXCEL·LENT GESTIÓ"~ "10",
    VAL_NETEJA == "1"~"1",
    VAL_NETEJA == "2"~"2",
    VAL_NETEJA == "3"~"3",
    VAL_NETEJA == "4"~"4",
    VAL_NETEJA == "5"~"5",
    VAL_NETEJA == "6"~ "6",
    VAL_NETEJA == "7"~ "7",
    VAL_NETEJA == "8"~ "8",
    VAL_NETEJA == "9"~ "9",
    VAL_NETEJA == "NO HO SAP"~"NA",
    VAL_NETEJA == "NO CONTESTA"~ "NA",
    VAL_NETEJA == "NA"~ "NA",
    TRUE ~ "0"
    

    ))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多