![](/img/trans.png)
[英]Create a new column using dplyr based on string values in all other columns in a data frame in R
[英]R Use Dplyr to create a column that contain 1 of 6 possible values based on the value of 5 other columns
在 R 中,我試圖創建一個名為 model 的列,其中的值取決於最多 5 個其他列的值。
列是運動、汽車、SUV、旅行車、小型貨車、皮卡。 如果這 5 列是該組的成員,則其值為 1,否則為 0。我想創建一個名為 model 的列,如果 Sport = 1,2 如果 SUV = 1,則等於 1,如果 Wagon = 則等於 3 1, 4 if Minivan = 1 , 5 if Pickup = 1 否則如果所有 5 列都等於 0 那么模型將 = 0。我嘗試使用 case 語句並使用 dplyr 進行變異
cars %>%
mutate(model == case_when(Sport == 1, ~ '1'
,case_when(SUV == 1, ~ '2'
,case_when(Wagon == 1, ~'3'
,case_when(Minivan == 1, ~'4'
,case_when(Pickup == 1, ~ '5'
,TRUE ~ 0))))))
但我收到了這個錯誤:
> error: Problem with `mutate()` input `..1`.
i `..1 = ==...`.
x Case 1 (`Pickup == 1`) must be a two-sided formula, not a logical vector.
我已經包含了指向以下文件的鏈接。 [04cars.csv 文件]
您不嵌套case_when
語句,您只需將所有表達式傳遞給對case_when
一次調用
cars %>%
mutate(model = case_when(
Sport == 1 ~ '1',
SUV == 1 ~ '2',
Wagon == 1 ~'3',
Minivan == 1 ~'4',
Pickup == 1 ~ '5'
TRUE ~ 0))
將使用每個值的第一個匹配條件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.