R调整数据框的形状以获取观测值的总数

时间:2019-04-25 17:33:58

标签: r reshape

我正在考虑如何像这样重塑数据框架:

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

因此,我想将点和类型设为列,并计算所有类型中点的总出现次数。

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