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

时间:2019-11-16 23:32:37

标签: r pipe tidyverse aggregates

如何使用管道获取子组?我不明白为什么我写的东西行不通。有人可以解释这些工作原理,在线阅读和在线查看示例对我没有帮助,因为我不确定自己不了解什么?

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

1 个答案:

答案 0 :(得分:2)

原因是select仍返回一列的data.frame,而mean期望基于vector的{​​{1}}

  

x-一个R对象。当前,存在用于数字/逻辑矢量以及日期,日期时间和时间间隔对象的方法。仅允许trim = 0的复数向量。

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

mean

在第二种情况下,我们获得了'qsec'的library(dplyr) mtcars %>% pull(qsec) %>% mean #[1] 17.84875 ,其中'cyl'为8

mean