0
私のデータは、このようになります新しい列に列から値をコピー:各「アイテム」のための「ID」列の下の値に応じて、Rは - 条件付き
Item | S1 | S2 | S3 | S4 | ID | New
A | 1 | 2 | 5 | 8 | 1 |
A | 4 | 4 | 5 | 4 | 1 |
A | 6 | 7 | 1 | 3 | 1 |
A | 4 | 1 | 7 | 6 | 1 |
B | 3 | 1 | 5 | 3 | 2 |
B | 1 | 4 | 5 | 2 | 2 |
B | 8 | 7 | 3 | 6 | 2 |
B | 4 | 1 | 5 | 2 | 2 |
C | 4 | 2 | 6 | 4 | 4 |
C | 6 | 6 | 7 | 1 | 4 |
C | 2 | 3 | 3 | 7 | 4 |
C | 5 | 8 | 9 | 2 | 4 |
D | 2 | 1 | 2 | 3 | 3 |
D | 2 | 6 | 7 | 6 | 3 |
D | 2 | 3 | 0 | 4 | 3 |
D | 2 | 1 | 2 | 1 | 3 |
E | 6 | 1 | 3 | 5 | 4 |
E | 3 | 2 | 4 | 4 | 4 |
E | 6 | 6 | 7 | 7 | 4 |
E | 3 | 8 | 1 | 4 | 4 |
、私は「列を移入したいですS1、S2、S3またはS4からの値で「新規」を選択します。たとえば、AのIDは1なので、S1の下の値だけを新しい列に入れたいとします。
出力に必要:今
Item | S1 | S2 | S3 | S4 | ID | New
A | 1 | 2 | 5 | 8 | 1 | 1
A | 4 | 4 | 5 | 4 | 1 | 4
A | 6 | 7 | 1 | 3 | 1 | 6
A | 4 | 1 | 7 | 6 | 1 | 4
B | 3 | 1 | 5 | 3 | 2 | 1
B | 1 | 4 | 5 | 2 | 2 | 4
B | 8 | 7 | 3 | 6 | 2 | 7
B | 4 | 1 | 5 | 2 | 2 | 1
C | 4 | 2 | 6 | 4 | 4 | 4
C | 6 | 6 | 7 | 1 | 4 | 1
C | 2 | 3 | 3 | 7 | 4 | 7
C | 5 | 8 | 9 | 2 | 4 | 2
D | 2 | 1 | 2 | 3 | 3 | 2
D | 2 | 6 | 7 | 6 | 3 | 7
D | 2 | 3 | 0 | 4 | 3 | 0
D | 2 | 1 | 2 | 1 | 3 | 2
E | 6 | 1 | 3 | 5 | 4 | 5
E | 3 | 2 | 4 | 4 | 4 | 4
E | 6 | 6 | 7 | 7 | 4 | 7
E | 3 | 8 | 1 | 4 | 4 | 4
、私は、各項目のIDを比較し、ループ内でpaste0("S", counter_variable)
を使用して列を選択するには、ループのために使用しています。私のデータは、「アイテム」の下に約4万の異なる値を持ち、1,200万行を超えています。これを行うより速い方法がありますか?
、それは 'DFだろう[2:5] [CBIND(seq_along(DFます$ ID)、DF $ ID)]' –