Я хочу заполнить новый столбец col c: если столбцы col пустые, то столбец c пуст, в противном случае записи из столбцов b

Мои нынешние данные:

col a    col b    
 A         G
 G         A
           C
 T         G  
           A
 C         
 A         T
 G         C

 A

Если столбец a пуст, то пуст в новом столбце c, в противном случае записи из столбца b.

Требуются новые данные:

col a    col b  Mutant_SNP_2  
 A         G         G
 G         A         A
           C
 T         G         G
           A
 C         
 A         T         T
 G         C         C

 A

3 ответа

Решение

Ты можешь использовать ifelse

df$Mutant_SNP_2 <- ifelse(df$colb == '', '', df$colc)
library(data.table)

setDT(df)[ , c := ifelse(a=="", "", b)]

Мы можем избежать ifelse с двумя назначениями

library(data.table)
setDT(df1)[, Mutant_SNP_2 := ""][cola!="", Mutant_SNP_2 := colb][]
 #    cola colb Mutant_SNP_2
 #1:    A    G            G
 #2:    G    A            A
 #3:         C             
 #4:    T    G            G
 #5:         A             
 #6:    C                  
 #7:    A    T            T
 #8:    G    C            C
 #9:                       
 #10:    A                  
Другие вопросы по тегам