我正在考虑如何像这样重塑数据框架:
id type points times
1 A 3 1
2 B 3 2
3 A 3 3
4 B 2 4
5 A 1 5
对此:
points A B
1 5 0
2 0 4
3 4 2
因此,我想将点和类型设为列,并计算所有类型中点的总出现次数。
答案 0 :(得分:2)
您可以使用dcast
中的reshape2
reshape2::dcast(dat[-1], points ~ type, fill = 0, fun.aggregate = sum)
# points A B
#1 1 5 0
#2 2 0 4
#3 3 4 2
或者没有外部软件包,您可以使用xtabs
xtabs(times ~ points + type, data = dat)
# type
#points A B
# 1 5 0
# 2 0 4
# 3 4 2
答案 1 :(得分:1)
使用tidyverse
,您可以执行以下操作:
df %>%
group_by(type, points) %>%
summarise(sum = sum(times)) %>%
spread(type, sum, fill = 0)
points A B
<int> <dbl> <dbl>
1 1 5 0
2 2 0 4
3 3 4 2