我试图看看是否有一种方法可以组合代码行,当我根据另一个值变异多个值时。但是,当我使用c()作为列表时,并不是所有的值都在变异,只有一些。还有什么事情我需要做,还是我需要让每一个变异在一个单独的线上?
示例数据:
Category <- c("Additional Fees", "Additional Fees", "None", "None", "Package", "None")
Item <- c("20oz Upgrade", "Ice Cream", "20oz Upgrade", "Ice Cream", "Ice Cream", "20oz Upgrade")
df <- data.frame(Category, Item)
能工作的更长的代码
df2 <- df %>%
mutate(Category = ifelse(Item == "20oz Upgrade", "Additional Fees", Category)) %>%
mutate(Category = ifelse(Item == "Ice Cream", "Additional Fees", Category))
组合变异--但不是所有的值都是变异的--我想使用它(类别的第5行和第6行对我来说不是变异的)。
df1 <- df %>%
mutate(Category = ifelse(Item == c("20oz Upgrade", "Ice Cream"), "Additional Fees", Category))
发布于 2022-08-05 15:24:30
您需要使用%in%
而不是==
,因为您正在检查一个项是否位于一个向量为2的向量中,而不是等于:
df |> mutate(Category = ifelse(Item %in% c("20oz Upgrade", "Ice Cream"), "Additional Fees", Category))
输出:
Category Item
1 Additional Fees 20oz Upgrade
2 Additional Fees Ice Cream
3 Additional Fees 20oz Upgrade
4 Additional Fees Ice Cream
5 Additional Fees Ice Cream
6 Additional Fees 20oz Upgrade
https://stackoverflow.com/questions/73251974
复制相似问题