如果我有数据框
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
答案 0 :(得分:0)
您可以使用dplyr count()
,group_by()
/ mutate()
和tidyr' s 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)