假设我想在数据集中创建一个class
名为 的新标识符,用于计算第 1 组和第 2 组之间吉普车、路虎和斯巴鲁的里程总和。有没有办法在tidyverse中执行此操作,而不将其转换为宽格式?这是一些代码(当然,这不起作用),它显示了我想要实现的目标。outdoors
mpg
hwy
library(tidyverse)
data(mpg)
mpg_new <- mpg %>%
mutate(group = rep(c(1,2), times = 117)) %>%
group_by(group) %>%
mutate(hwy[class="outdoors"] = sum(hwy[manufacturer=="jeep"], hwy[manufacturer=="land rover"], hwy[manufacturer=="subaru"]))
# class="outdoors" is the new identifier I am trying to create within the class variable
通常,更新某些但不是全部行的 tidyverse 方法是使用
ifelse
orcase_when
,并将原始值作为“else”或默认值。我们将分两步进行,首先更新
class
列,然后更新hwy
列:我还注意到,这可以在 6 行数据框架上轻松地演示,并且更加清晰 - 我强烈建议尝试找到最少的示例 - 它更容易理解并且更容易调试。