将序列转换为R中的ODD或偶数序列

时间:2017-02-01 07:33:49

标签: r

如果我在数据框中有一系列数字 - 是否可以创建一个跟在序列后面的新列,但只显示奇数或偶数 - 这是一个例子:

SEQ      ODDSEQ   EVENSEQ
1        1        2
1        1        2
1        1        2
2        3        4
2        3        4
2        3        4
3        5        6
3        5        6
3        5        6
4        7        8
4        7        8
4        7        8

所以SEQ就是我现在所拥有的......一个重复的序列,我想创建第2列和第2列。 3 ..?我知道Modulo在某种程度上涉及到我可以完全理解它。

任何想法......? 保罗

1 个答案:

答案 0 :(得分:0)

假设我们需要一般方法

library(dplyr)
df1 %>% 
     mutate(ODDSEQ = seq(1, length.out= n_distinct(SEQ), by = 2)[match(SEQ, unique(SEQ))],
           EVENSEQ = seq(2, length.out = n_distinct(SEQ), by = 2)[match(SEQ, unique(SEQ))])
#    SEQ ODDSEQ EVENSEQ
#1    1      1       2
#2    1      1       2
#3    1      1       2
#4    2      3       4
#5    2      3       4
#6    2      3       4
#7    3      5       6
#8    3      5       6
#9    3      5       6
#10   4      7       8
#11   4      7       8
#12   4      7       8