我有一个数据集,其中包含多列日期和相应的值(重复测量)。是否有一种方法可以使用 tidyr
将其转换为包含两列(日期和值)的长数据集(其他列也包括在内)?
以下代码生成示例数据框:
df <- data.frame(
id = 1:10,
age = sample(100, 10),
date1 = as.Date('2015-09-22') - sample(100, 10),
value1 = sample(100, 10),
date2 = as.Date('2015-09-22') - sample(100, 10),
value2 = sample(100, 10),
date3 = as.Date('2015-09-22') - sample(100, 10),
value3 = sample(100, 10))
输入表格可能长这样(在 1.8x10^138 次尝试中有
1
的几率): id age date1 value1 date2 value2 date3 value3
1 1 32 2015-08-01 37 2015-07-15 38 2015-09-09 81
2 2 33 2015-07-22 16 2015-06-26 1 2015-09-12 58
...
10 10 64 2015-07-23 78 2015-08-25 70 2015-08-05 90
我最终想要的是这样的结果:
id age date value
1 1 32 2015-08-01 37
2 1 32 2015-07-15 38
3 1 32 2015-09-09 81
4 2 33 2015-07-22 16
5 2 33 2015-06-26 1
...
30 10 64 2015-08-05 90
任何在
tidyr
或reshape
中完成此操作的帮助都将不胜感激。