【问题标题】:mutate data frame if cells are empty如果单元格为空,则改变数据框
【发布时间】:2020-10-19 07:22:07
【问题描述】:

我有一个如下所示的数据框,我想动态地将DEPT_Head = "DEV0001" 提供给我的脚本

df <- data.frame(HOD_ID =c("","KTN2252","ANA2719","ITI2624","DEV2698","HRT2921","","KTN2624","ANA2548","ITI2535","DEV2732","HRT2837","ERV2951","KTN2542","ANA2813","ITI2210"),
                 DEPT_Head = c("DEV0001","KTN2252","ANA2719","ITI2624","DEV2698","HRT2921","ERV0000","KTN2624","ANA2548","ITI2535","DEV2732","HRT2837","ERV2951","KTN2542","ANA2813","ITI2210"))

我的代码总是需要输入参数 DEPT_Head = "DEV0001"

如果HOD_ID 用户输入Dept_head 应该为空白,并且如果除了用户输入参数之外还有任何其他空白单元格,则我想改变我的数据框,将新列突变为1 对于用户定义的DEPT_HeadHOD_ID 应始终为空白,否则如果有任何空白单元格,则将if_blank 突变为 1

首先检查Dept_head 是否应为用户提供的HOD_ID 作为输入参数为空。 其次是除了用户输入dept_head id 之外,不应该有任何空单元格,如果找到任何空单元格,则将新列突变为 1

【问题讨论】:

  • 这样可以吗? df %>% mutate(if_blank = case_when(HOD_ID == '' & DEPT_Head != "DEV0001" ~ 1, TRUE ~ 0))
  • 是的,这对我不起作用,这就是我寻找解决方案的原因
  • 如果HOD_ID不为空提供DEPT_Head,你想做什么?
  • 可以为空,因此没有突变,只有 0 在 mutated 列中,之后为 1 为所有空单元格

标签: r


【解决方案1】:

你可以试试:

DEPT_Head = "DEV0001"
df$if_blank <- as.integer(df$DEPT_Head != DEPT_Head & df$HOD_ID == '')

【讨论】:

    猜你喜欢
    • 2012-01-10
    • 2022-11-24
    • 2020-12-31
    • 1970-01-01
    • 2019-08-21
    • 2019-06-18
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多