如何使用 R 中的管道编写这些内容?

How do I write these using pipes in R?

如何使用管道获取子组?我不明白为什么我写的东西不起作用。谁能解释一下这些是如何工作的,在线阅读和在线查看示例对我没有帮助,因为我不确定我不理解的是什么?

mean(mtcars$qsec)



mtcars %>%
    select(qsec) %>%
    mean()

警告信息: 在 mean.default(.) 中:参数不是数字或逻辑:返回 NA

mean(mtcars$qsec[mtcars$cyl==8])

mtcars %>%
     group-by(qsec) %>%
     filter(cyl==8)
     mean()

mean.default() 错误:缺少参数 "x",没有默认值

mean(mtcars$mpg[mtcars$hp > median(mtcars$hp)])

mtcars %>%
    group_by(mpg)  %>%
    filter(hp>median(hp))
    mean

原因是 select 仍然 returns 具有一列的 data.frame 而 mean 期望 vector 基于 ?mean

x - An R object. Currently there are methods for numeric/logical vectors and date, date-time and time interval objects. Complex vectors are allowed for trim = 0, only.

我们可以使用 pull 将列提取为 vector 并在其上应用 mean

library(dplyr)
mtcars %>%
   pull(qsec) %>%
   mean
#[1] 17.84875

在第二种情况下,我们得到 'qsec' 的 mean,其中 'cyl' 是 8

mtcars %>%
   select(qsec, cyl) %>%
   filter(cyl == 8) %>% 
   pull(qsec) %>%
   mean
#[1] 16.77214