为了将列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)
您可以使用%$%而不是%>%直接访问列:
> data %>% filter(y == "d") %$% sum(x)
[1] 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1078 次 |
| 最近记录: |