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