【发布时间】:2020-02-06 06:48:38
【问题描述】:
我试图首先将一个有价值的列传播到一组二进制列中,然后以“时间序列”格式再次收集它们。
例如,考虑在特定时间被征服的位置,数据如下所示:
df1 <- data.frame(locationID = c(1,2,3), conquered_in = c(1931, 1932, 1929))
locationID conquered_in
1 1 1931
2 2 1932
3 3 1929
我正在尝试将数据重塑为如下所示:
df2 <- data.frame(locationID = c(1,1,1,1,2,2,2,2,3,3,3,3), year = c(1929,1930,1931,1932,1929,1930,1931,1932,1929,1930,1931,1932), conquered = c(0,0,1,1,0,0,0,0,1,1,1,1))
locationID year conquered
1 1 1929 0
2 1 1930 0
3 1 1931 1
4 1 1932 1
5 2 1929 0
6 2 1930 0
7 2 1931 0
8 2 1932 0
9 3 1929 1
10 3 1930 1
11 3 1931 1
12 3 1932 1
我最初的策略是在被征服时使用spread,然后尝试使用gather。 This answer 似乎很接近,但我似乎无法用 fill 正确处理它,因为我也在尝试用 1 填充晚年。
【问题讨论】: