【发布时间】:2019-07-21 20:17:41
【问题描述】:
问题从难以解释开始。
我有一个具有时间维度的数据集,我的 ID 变量会随着时间的推移而更改名称,因此难以计算,例如ID 变量随时间变化的百分比。
ID YR Value
01 2004 100
02 2005 50
03 2005 50
04 2005 10
我需要计算 pct。按 ID 随时间变化的值。问题是在 2005 年,ID 变量 01 被拆分为三个 IDs (02,03,04),因此必须在 2005 年聚合三个 ID 的值才能得到 ID 01 in 2005 的相应值。 ID 01 的百分比变化不是50/100,而是sum(50,50,10)/100。
我的 ID 的 data.frame 只匹配随时间的变化,它看起来像这样:
x2004 x2005
01 01
01 02
01 03
我使用dplyr的group_by在两年内创建ID之间的匹配
group_by(x2004) %>%
summarize(onetomany = paste(sort(unique(x2005)),collapse=", "))
这给了我一个表单的data.frame
cv2004 onetomany
1 1 1, 2, 3
我可以看到哪些 ID 属于同一组,这就是我停止百分比计算的地方。
我完全理解它本身的问题并不容易理解。这是贸易统计中的一个常见问题,商品代码会随着时间而改变名称但不会改变内容,并且必须跟踪这些变化以了解商品随时间推移的贸易发展情况。任何建议表示赞赏。
【问题讨论】:
-
我提供的示例data.frame变成了纯文本,不知道怎么保持格式。