【发布时间】:2020-11-18 10:00:50
【问题描述】:
数据集有 3 列——第 1 列是“id”,第 2 列是“year”,第 3 列是“node”。第三列是二进制变量。现在,我们需要修复第 3 列“节点”上的数据错误,规则如下。
1)在每个id内,node=1的最后一个值之前的所有值都应该等于1。在node=1之前不应该出现node=0。它应该只停留在 node=1 的所有年份,或者在某个时间点从 node=1 变为 node=0。
2)在每个id内,如果节点从year1到year8的所有值都等于(0或1),那么我们必须保持它们不变。
综上所述,修正后的数据集应该是这样的,
id node year
383100111 1 1
383100111 1 2
383100111 1 3
383100111 1 4
383100111 1 5
383100111 1 6
383100111 1 7
383100111 0 8
383100222 1 1
383100222 1 2
383100222 1 3
383100222 1 4
383100222 1 5
383100222 1 6
383100222 1 7
383100222 1 8
383100333 1 1
383100333 1 2
383100333 1 3
383100333 1 4
383100333 1 5
383100333 1 6
383100333 1 7
383100333 1 8
383100444 1 1
383100444 1 2
383100444 1 3
383100444 1 4
383100444 1 5
383100444 1 6
383100444 1 7
383100444 0 8
383100555 1 1
383100555 1 2
383100555 1 3
383100555 1 4
383100555 1 5
383100555 1 6
383100555 1 7
383100555 1 8
383100666 0 1
383100666 0 2
383100666 0 3
383100666 0 4
383100666 0 5
383100666 0 6
383100666 0 7
383100666 0 8
383100777 1 1
383100777 1 2
383100777 1 3
383100777 1 4
383100777 1 5
383100777 1 6
383100777 1 7
383100777 1 8
有错误的原始数据集结构如下,
structure(list(id = c(383100111, 383100111, 383100111, 383100111,
383100111, 383100111, 383100111, 383100111, 383100222, 383100222,
383100222, 383100222, 383100222, 383100222, 383100222, 383100222,
383100333, 383100333, 383100333, 383100333, 383100333, 383100333,
383100333, 383100333, 383100444, 383100444, 383100444, 383100444,
383100444, 383100444, 383100444, 383100444, 383100555, 383100555,
383100555, 383100555, 383100555, 383100555, 383100555, 383100555,
383100666, 383100666, 383100666, 383100666, 383100666, 383100666,
383100666, 383100666, 383100777, 383100777, 383100777, 383100777,
383100777, 383100777, 383100777, 383100777), node = c(1, 1, 1,
0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1,
0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1), year = c(1, 2, 3, 4, 5, 6,
7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3,
4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8,
1, 2, 3, 4, 5, 6, 7, 8)), row.names = c(NA, 56L), class ="data.frame")->dataframe
谢谢!
【问题讨论】:
-
我可以看到您指定的条件与显示的输出之间存在一些矛盾。你能再检查一次吗?如果我错过了什么,请告诉我。
-
很抱歉给您带来了困惑。我已经对错字进行了更改。
-
还请说明在序列 1,0,1 的情况下是否应更改为 1,1,1 或 1,0,0?
-
应该改为1,1,1。
标签: r rolling-computation