2
在下面的數據框中,我想創建一個名爲D2的新列,它與相應的A,B或C列匹配。例如,如果D == A,我想D2 == A2。R - 在同一數據幀中與其他列匹配的列
A A2 B B2 C C2 D
1 10 2 90 3 9 1
1 11 2 99 3 15 1
1 42 2 2 3 9 2
1 5 2 54 3 235 2
1 13 2 20 3 10 3
1 6 2 1 3 4 3
這就是我想要的新數據幀的樣子:
A A2 B B2 C C2 D D2
1 10 2 90 3 9 1 10
1 11 2 99 3 15 1 11
1 42 2 2 3 9 2 2
1 5 2 54 3 235 2 54
1 13 2 20 3 10 3 10
1 6 2 1 3 4 3 4
我已經成功地使用dplyr與ifelse語句這樣做,但因爲我有很多列這樣做,過了一段時間會變得乏味。我想知道是否有更聰明的方法來完成同樣的任務。
library(dplyr)
newdata <- olddata %>% mutate(D2=ifelse(D==A,A2,ifelse(D==B,B2,C2)))
是'DF並[c( 「A2」, 「B2」, 「C2」)] [cbind(1:nrow(DF), df $ D)]'足夠靈活? – thelatemail
@thelatemail:那是一個不錯的單人班輪。 – Sathish
@thelatemail這很可愛,但我認爲OP做了一個簡單的例子 – akrun