例如,以下将不起作用:
data(mpg)
filter(mpg, manufacturer =="audi") %>%
sum(.$cty)
Run Code Online (Sandbox Code Playgroud)
但是,以下将起作用:
data(mpg)
x <- filter(mpg, manufacturer =="audi")
sum(x$cty)
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想让这一切都在管道流动中工作。
您可以使用pull将列作为向量,然后使用sum.
library(dplyr)
mpg %>%
filter(manufacturer =="audi") %>%
pull(cty) %>%
sum
#[1] 317
Run Code Online (Sandbox Code Playgroud)
您的尝试不起作用,因为管道将 LHS 的输出作为 RHS 中函数的第一个参数发送。所以数据帧作为第一个参数在sum. 如果你{}在它周围使用它会起作用。
filter(mpg, manufacturer =="audi") %>% {sum(.$cty)}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1081 次 |
| 最近记录: |