【发布时间】:2021-10-29 20:50:24
【问题描述】:
在 R 中,我正在尝试创建一个名为 model 的列,其中的值取决于最多 5 个其他列的值。
这些列是 Sport、Car、SUV、Wagon、Minivan、Pickup。如果它是该组的成员,则这 5 列的值为 1,否则为 0。我想创建一个名为 model 的列,如果 Sport = 1,2 如果 SUV = 1,则等于 1,如果 Wagon = 则等于 3 1, 4 如果 Minivan = 1 , 5 如果 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文件】
【问题讨论】: