簡體   English   中英

在 dplyr package 中,您可以根據不同列中的值改變列

[英]In the dplyr package can you mutate a column based on the values in a different column

我的目標是創建一個名為 audit_cat 的新 df 列,它基於兩個已經存在的名為 audit_score(離散數字變量)和性別(“男性”,“女性”)的 df 列。

audit_cat 將是一個二分字符串變量,范圍為 0-2 ~“無危險”和 3-12 ~“危險”,“女性”和“男性”0-3 =“無危險”和 4-12。

如果 audit_cat 包含女性和男性分數,那將是理想的。

使用過濾器按性別分開,然后用 case_when 改變 audit_score 已經起作用,除了它過濾掉另一個性別。

df2<- df2%>% 
   filter(gender == "Male") %>%
   mutate(audit_score_cat =
            case_when(audit_score >= 0 & audit_score <= 3 ~ "Not hazardous",
                      audit_score >=4 & audit_score <= 12 ~ "Hazardous"))

有沒有辦法可以根據取決於性別的兩個不同評分系統創建新的 df 列 audit_cat?

謝謝你。

您可以列出“無危險”的條件並將 rest 分配給“危險”。

df2 %>%
  mutate(audit_score_cat = case_when(
    gender ==    "Male" & between(audit_score, 0, 3) ~ "Not hazardous",
    gender == "Females" & between(audit_score, 0, 2) ~ "Not hazardous",
    TRUE                                             ~ "Hazardous"
  ))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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