我有一个数据框:
from to color
1 54770 54771 darkgrey
2 54770 54775 darkgrey
3 54770 54776 darkgrey
4 54770 54774 darkgrey
5 54771 54775 darkgrey
6 54771 54776 darkgrey
7 54771 54774 red
8 54775 54776 darkgrey
9 54775 54774 darkgrey
10 54776 54774 darkgrey
11 110780 110781 darkgrey
12 110780 110783 darkgrey
13 110780 110784 darkgrey
14 110780 110782 darkgrey
15 110781 110783 darkgrey
16 110781 110784 darkgrey
17 110781 110782 darkgrey
18 110783 110784 darkgrey
19 110783 110782 darkgrey
20 110784 110782 darkgrey
21 20285 20286 darkgrey
22 20285 20287 darkgrey
23 20285 20692 red
24 20285 20693 red
25 20286 20287 darkgrey
26 20286 20692 darkgrey
27 20286 20693 darkgrey
28 20287 20692 darkgrey
29 20287 20693 darkgrey
30 83962 83963 darkgrey
31 83962 83964 darkgrey
32 83962 83960 darkgrey
33 83962 83961 red
34 83963 83964 darkgrey
35 83963 83960 darkgrey
36 83963 83961 darkgrey
37 83964 83960 red
38 83964 83961 darkgrey
39 88564 88565 darkgrey
40 88824 88825 darkgrey
41 88824 88826 darkgrey
42 88824 88565 darkgrey
43 88825 88826 darkgrey
44 88825 88565 red
45 88826 88565 darkgrey
46 72276 72272 red
47 72276 72273 darkgrey
48 72276 72274 darkgrey
49 72276 72275 darkgrey
50 111062 111058 darkgrey
51 111062 111059 darkgrey
52 111062 111060 red
53 111062 111061 darkgrey
54 111074 111070 red
55 111074 111071 red
56 111074 111072 darkgrey
57 111074 111073 darkgrey
我想向这个数据帧添加另外两列,它们是序列号,分为一组奇数和偶数,如下所示:
from to color f t
1 54770 54771 darkgrey
2 54770 54775 darkgrey
3 54770 54776 darkgrey
4 54770 54774 darkgrey
5 54771 54775 darkgrey
6 54771 54776 darkgrey
7 54771 54774 red 1 2
8 54775 54776 darkgrey
9 54775 54774 darkgrey
10 54776 54774 darkgrey
11 110780 110781 darkgrey
12 110780 110783 darkgrey
13 110780 110784 darkgrey
14 110780 110782 darkgrey
15 110781 110783 darkgrey
16 110781 110784 darkgrey
17 110781 110782 darkgrey
18 110783 110784 darkgrey
19 110783 110782 darkgrey
20 110784 110782 darkgrey
21 20285 20286 darkgrey
22 20285 20287 darkgrey
23 20285 20692 red 3 4
24 20285 20693 red 5 6
25 20286 20287 darkgrey
26 20286 20692 darkgrey
27 20286 20693 darkgrey
28 20287 20692 darkgrey
29 20287 20693 darkgrey
30 83962 83963 darkgrey
31 83962 83964 darkgrey
32 83962 83960 darkgrey
33 83962 83961 red 7 8
34 83963 83964 darkgrey
35 83963 83960 darkgrey
36 83963 83961 darkgrey
37 83964 83960 red 9 10
38 83964 83961 darkgrey
39 88564 88565 darkgrey
40 88824 88825 darkgrey
41 88824 88826 darkgrey
42 88824 88565 darkgrey
43 88825 88826 darkgrey
44 88825 88565 red 11 12
45 88826 88565 darkgrey
46 72276 72272 red 13 14
47 72276 72273 darkgrey
48 72276 72274 darkgrey
49 72276 72275 darkgrey
50 111062 111058 darkgrey
51 111062 111059 darkgrey
52 111062 111060 red 15 16
53 111062 111061 darkgrey
54 111074 111070 red 17 18
55 111074 111071 red 19 20
56 111074 111072 darkgrey
57 111074 111073 darkgrey
我想用 NA 留下空的(我在上面的 df 中将它们排除在外)。
我可以which
用来获取要更新的行的索引:
which(df$color == "red")
[1] 7 23 24 33 37 44 46 52 54 55
我可以基于此创建两个奇数和偶数序列:
odd <- seq(from = 1, to = 2*length(which(cluster_data_updated_illegal_combined$color == "red")), by = 2)
even <- seq(from = 2, to = 2*length(which(cluster_data_updated_illegal_combined$color == "red")), by = 2)
> odd
[1] 1 3 5 7 9 11 13 15 17 19
> even
[1] 2 4 6 8 10 12 14 16 18 20
但是我如何组合这些来添加上面的序列号?
首先用 NA 填充列。
df$f = NA
df$t = NA
然后使用 which 来更新必要的行
df$f[which(df$color == "red")] = odd
df$t[which(df$color == "red")] = even
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句