R-如何在条件上向dataframe添加连续列?
我有一个数据帧:R-如何在条件上向dataframe添加连续列?,r,graph,sequence,igraph,R,Graph,Sequence,Igraph,我有一个数据帧: 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
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
奇偶
[1] 2 4 6 8 10 12 14 16 18 20
但是我如何组合这些元素来添加上面的序列号呢?首先用NA填充所有列
df$f = NA
df$t = NA
然后使用更新所需行的
df$f[which(df$color == "red")] = odd
df$t[which(df$color == "red")] = even
首先用NA填充所有列
df$f = NA
df$t = NA
然后使用更新所需行的
df$f[which(df$color == "red")] = odd
df$t[which(df$color == "red")] = even
初始化空列后
df$f <- NA
df$n <- NA
初始化空列后
df$f <- NA
df$n <- NA