Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-如何在条件上向dataframe添加连续列?_R_Graph_Sequence_Igraph - Fatal编程技术网

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