как выбрать последний ответ из нескольких ответов с NA из нескольких столбцов в широкоформатных данных в R - PullRequest
0 голосов
/ 13 апреля 2020

df

 ID         V1             V2              V3           V4           V5         V6                          
 1 10007       PrEP EXP       NA              PrEP FU      NA           NA         NA          
 2 10038       NA             NA              PrEP FU      NA           NA         PrEP EXP             
 3 10039       PrEP FU        NA              NA           NA           PrepFU EXP PrEP EN             
 4 10058       NA             NA              PrepFU EXP   PrEP FU      NA         NA             
 5 10062       NA             NA              PrepFU EXP   NA           NA         PrEP FU              

Как выбрать только последний ответ для создания новой переменной из набора данных выше. Выходная переменная будет

    ID         V1             V2              V3           V4           V5         V6          Output                
 1 10007       PrEP EXP       NA              PrEP FU      NA           NA         NA          PrepFU 
 2 10038       NA             NA              PrEP FU      NA           NA         PrEP EXP    PrEP EXP         
 3 10039       PrEP FU        NA              NA           NA           PrepFU EXP PrEP EN     PrEP EN         
 4 10058       NA             NA              PrepFU EXP   PrEP FU      NA         NA          PrEP FU    
 5 10062       NA             NA              PrepFU EXP   NA           NA         PrEP FU     PrEP FU 

Любой код в r или предложения будут оценены. r

1 Ответ

2 голосов
/ 13 апреля 2020

Мы можем использовать max.col, чтобы получить индекс столбца последнего элемента не-NA для каждой строки, cbind с последовательностью строк, чтобы извлечь элемент, который соответствует i, j index

df1$Output <- df1[-1][cbind(seq_len(nrow(df1)), max.col(!is.na(df1[-1]), 'last'))]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...