我有以下数据帧df(以下为dput
):
> df
id value
1 1 1
2 2 3
3 3 2
4 NA 1
5 NA 3
6 8 4
7 9 2
8 10 1
9 NA 1
10 NA 3
11 15 2
12 16 1
13 NA 3
14 NA 4
15 NA 2
16 20 1
17 21 1
18 22 3
19 NA 2
20 NA 1
21 NA 3
22 66 4
23 67 2
24 68 1
我想将NA
之间的值转换为唯一的id.例如,在上面的数据帧中,id的1、2和3都应该是1;下一个id的8、9、10应该都是2,依此类推.所需的输出应如下所示:
id value id2
1 1 1 1
2 2 3 1
3 3 2 1
4 NA 1 NA
5 NA 3 NA
6 8 4 2
7 9 2 2
8 10 1 2
9 NA 1 NA
10 NA 3 NA
11 15 2 3
12 16 1 3
13 NA 3 NA
14 NA 4 NA
15 NA 2 NA
16 20 1 4
17 21 1 4
18 22 3 4
19 NA 2 NA
20 NA 1 NA
21 NA 3 NA
22 66 4 5
23 67 2 5
24 68 1 5
如您所见,id2显示了我希望在NA之间的id值中使用的唯一id.正如你所能做到的,在id的1,2和3这样的值之后可能只有一个NA.所以我想知道是否有人知道如何为NA
之间的值创建一个唯一的ID?
Df的dput
%:
df <- structure(list(id = c(1, 2, 3, NA, NA, 8, 9, 10, NA, NA, 15,
16, NA, NA, NA, 20, 21, 22, NA, NA, NA, 66, 67, 68), value = c(1,
3, 2, 1, 3, 4, 2, 1, 1, 3, 2, 1, 3, 4, 2, 1, 1, 3, 2, 1, 3, 4,
2, 1)), class = "data.frame", row.names = c(NA, -24L))