Объединение строк по идентификатору - PullRequest
0 голосов
/ 29 мая 2019

У меня большой набор данных, и я хотел бы объединить строки с одинаковым идентификатором в одну строку, не теряя никакой информации.

Для начала, вот мои длинные данные:

 # A random data frame
    df1  <- read.table(text="question ID  ARG  AUT ITA
                              A     90   NA  all   never
                              A     90   NA  all   NA
                              A1    91   12  NA    NA
                              A2    92   14  two   41
                              A3    93   17  NA    44
                              AA    90   20  NA    NA
                              B2    91   NA  NA    NA
                              B3    92   NA  four  NA
                              B4    93   NA  10    yes", header=TRUE, stringsAsFactors=FALSE)

Это то, чего я хотел бы достичь:

# A random data frame
    df1  <- read.table(text="question ID  ARG  AUT ITA
                              A     90   20  all   never
                              A1    91   12  13    61
                              A2    92   14  two   41
                              A3    93   17  10    yes ", header=TRUE, stringsAsFactors=FALSE)

Обратите внимание, что мой фактический набор данных находится в широком формате и содержит больше переменных / столбцов, чем в примере выше.

Я думал о функции aggregate(), но я не знаю, как ее реализовать, потому что у меня есть значения символов, которые нужно «агрегировать».Буду очень признателен за любые предложения по решению этой проблемы!

1 Ответ

1 голос
/ 29 мая 2019

Опция будет

library(dplyr)
df1 %>%
   group_by(ID) %>%
   summarise_all(list(~ .[!is.na(.)][1]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...