使用 dplyr 获取 R 中 data.frame 列总和的更好方法

Mur*_*rta 3 r dataframe dplyr

为了将列sum的值放入data.frame变量中,我这样做了:

library(dplyr)
data <- data.frame("x" = c(1,2,3), "y" = c("a","b","c"))
way01 <- data %>% filter(y == "d") %>% summarise(total = sum(x)) %>% .$total
way02 <- data %>% filter(y == "d") %>% .$x %>% sum
Run Code Online (Sandbox Code Playgroud)

summarise(total = sum(x)) %>% .$total我觉得这样做很笨拙%>% .$x %>% sum。有更优雅的方法吗?

我想要类似的东西%>% sum(.$x),但它不起作用。

PS:建议用作过滤器,以处理没有问题的"d"情况。numeric(0)

Rom*_*ois 5

您可以使用%$%而不是%>%直接访问列:

> data %>% filter(y == "d") %$% sum(x)
[1] 0
Run Code Online (Sandbox Code Playgroud)