将数据从长R转换为宽R

时间:2018-07-19 13:02:05

标签: r data-conversion

这可能是一个愚蠢的问题,答案很简单,但是我的数据看起来像这样:

Person  Date    value
A   1-Jan-17    12
A   2-Jan-17    13
A   3-Jan-17    65
B   2-Jan-17    34
B   3-Jan-17    76
B   4-Jan-17    98
C   3-Jan-17    34
C   4-Jan-17    45
C   1-Jan-17    10

我想使它看起来像这样:

Date    Person A    Person B    Person C
1-Jan-17    12  0   10
2-Jan-17    13  34  0
3-Jan-17    65  76  34
4-Jan-17    0   98  45

这样我每个人都有一个完整的时间序列。我知道我可能必须为我的完整数据集填充数据。

任何帮助将不胜感激。我已经尝试了很多方法,但是没有得到我想要的东西(waaaaah)

1 个答案:

答案 0 :(得分:2)

签出tidyrspread

library(tidyr)
df %>% spread(Person,value, fill = 0)
#       Date  A  B  C
# 1 1-Jan-17 12  0 10
# 2 2-Jan-17 13 34  0
# 3 3-Jan-17 65 76 34
# 4 4-Jan-17  0 98 45