R 基于多个过滤器的汇总

R 基于多个过滤器的汇总,r,dplyr,R,Dplyr,如果我有一个数据帧 x = data.frame(x = c(1, 1, 2, 2), y = c(1, 2, 2, 2)) 我想使用dplyr来确定y中每个值的分数,这些值按x分组 所以答案应该是 x y1 y2 1 .5 .5 2 0 1 您可以使用dplyr的count()、一个groupby()/mutate()、以及tidyr的spread(): 不鼓励在不留下评论的情况下投反对票 library(dplyr) library(tidyr) x %>% count(x

如果我有一个数据帧

x = data.frame(x = c(1, 1, 2, 2), y = c(1, 2, 2, 2))
我想使用
dplyr
来确定
y
中每个值的分数,这些值按
x
分组

所以答案应该是

x y1 y2
1 .5 .5
2 0  1

您可以使用dplyr的
count()
、一个
groupby()
/
mutate()
、以及tidyr的
spread()


不鼓励在不留下评论的情况下投反对票
library(dplyr)
library(tidyr)

x %>%
  count(x, y = paste0("y", y)) %>%
  group_by(x) %>%
  mutate(n = n / sum(n)) %>%
  spread(y, n, fill = 0)