У меня большой набор данных с четырьмя столбцами: вопрос, идентификатор, страна и ответ.В столбце id у меня есть несколько дубликатов.Это потому, что они относятся к одному и тому же вопросу, но ответы отличаются в том смысле, что один из дубликатов имеет значение, а другой - NA.Теперь я хотел бы удалить дубликаты и сохранить те строки, в которых столбец ответа имеет значение.Обратите внимание, что значения в моей базе данных являются числовыми или символьными.
Я пытался использовать distinct()
из пакета dplyr.Однако проблема в том, что он всегда удаляет первую строку / первый дубликат независимо от того, что стоит в столбце ответа.
Вот мой код:
df1 %>% distinct(id, country, .keep_all = TRUE)
Я ожидаю, что у меня останутся строки с уникальным идентификатором (дубликатов не осталось) и что в столбце ответа информация не будет потеряна.Смотрите пример ниже:
#Initial data frame
df1 <- read.table(text="question id country response
X1 10 Belgium 40
X2 12 Austria NA
X2_1 12 Austria NEW
X4 17 USA NA
X5 17 USA 5
X6 NA Italy 61
X7 15 Spain
X8 15 Spain 100", header=TRUE, stringsAsFactors=FALSE)`
#Expected Output
df1 <- read.table(text="question id country response
X1 10 Belgium 40
X2_1 12 Austria NEW
X5 17 USA 5
X6 NA Italy 61
X8 15 Spain 100", header=TRUE, stringsAsFactors=FALSE)`