首页 > 解决方案 > dplyr 是否可以操作输入数据集?

问题描述

我正在使用 dplyr 对数据框应用多个过滤器和选择操作。是否可以直接更改输入对象中的数据?

所以我想实现这样的目标:

library(dplyr)
mtcars %>%
filter(mpg>20) %>%
select(cyl) <- mtcars %>%
filter(mpg>20) %>%
transmute(cyl=8)

显然,这会导致错误。

在基础 R 中,它看起来像这样:

mtcars[which(mtcars$mpg>20),"cyl"] <- 8
mtcars

标签: rdplyr

解决方案


一种方法是:

mtcars %>%
  mutate(cyl = ifelse(mpg > 20, 8, cyl))

推荐阅读