【发布时间】:2018-10-24 20:33:54
【问题描述】:
给定以下数据:
library(data.table)
demo <- data.table(ID = c("A", "A", "A", "A","A", "B", "B","B", "C","C","C", "D",
"D"),
Year = c(2011, 2012, 2013, 2014, 2015,
2012, 2013, 2015,
2013, 2014, 2015,
2013, 2015))
我们可以清楚地看到,对于 A 的 ID,它似乎不会随着时间的推移而改变,因此不应注册任何更改。 但是对于 B 的 ID,我们看到了 2011 年到 2012 年、2013 年到 2014 年和 2014 年到 2015 年的变化,我们想展示这些变化。
此数据的清晰图片如下所示。
现在,要在 R 中构造它,我实际上可以执行以下操作:
demo[, Value := 1]
dcast(demo, ID ~ Year, value.var = "Value", fill = 0)
然后尝试手动计算每年之间的变化。生成的表格将类似于下面的红色表格。
但是,如果有很多年,程序化解决方案会更高效、更简洁。我想知道这样的事情是否可能(没有 for 循环)。
【问题讨论】:
标签: r data.table