Я хотел бы объединить строки, удалить дубликаты, но сохранить uniques. Я могу сделать первые два, но не второй. У меня есть ф.р. названный предмет, который выглядит следующим образом:объединять дубликаты и сохранять уникальные элементы, используя dplyr :: distinct
unique_id subject grade
1 Math 88
1 English 78
1 History 98
2 Math 65
2 English 72
2 History 84
Этот код
combined <- distinct(subject, unique_id, .keep_all = TRUE)
дает мне этот выход:
unique_id subject grade
1 Math 88
2 Math 65
я хотел бы, чтобы он выглядеть следующим образом:
unique_id subject grade
1 Math, English, History 88, 78, 98
2 Math, English, History 65, 72, 84
Решение ниже работает отлично! Вот еще одна морщина проблемы.
Если у меня есть набор данных, который выглядит следующим образом:
unique_id school subject grade sex
1 great Math 88
1 great English 78
1 great History 98 male
2 spring Math 65
2 spring English 72 female
2 spring History 84
и запустить следующий код:
(r2 <- df %>%
group_by(unique_id) %>%
summarise_each(funs(toString(unique(.)))))
я получаю следующий результат:
unique_id school subject grade sex
1 great Math, English, History 88,78,98 , male
2 spring English, English, History 65,72,84 , female
Есть способ объединить пустые ячейки с запятыми в категории пола, так что это может выглядеть так:
unique_id school subject grade sex
1 great Math, English, History 88,78,98 male
2 spring English, English, History 65,72,84 female
Спасибо!
спасибо, @akrun! Ваш первый вариант работает отлично. Один быстрый вопрос: я попробовал это с пустыми ячейками и заметил, что получаю какие-то запятые. Любые идеи о том, как добавить код, чтобы избежать подсчета пустых ячеек? См. Новый пример выше. СПАСИБО!!! – richiepop2
@ richiepop2 Одним из вариантов было бы либо преобразовать его в NA, либо удалить его с помощью 'is.na' или иначе, мы можем сделать это с помощью sumise_each (funs (toString (. [Nzchar (.)])))' – akrun
Я пробовал решение, которое вы предоставили, но оно, похоже, не работает. Я изо всех сил пытаюсь понять, как объединить строки, но пропустить пробелы. См. Новый пример кода выше. – richiepop2