Работа с "Дублирующими идентификаторами" при преобразовании данных из длинного в широкоформатный формат с помощью Tidyr
Я не могу понять, как обойти тидир spread
ошибка
"Ошибка: повторяющиеся идентификаторы"
Во-первых, я буду использовать простой фрейм данных ниже, чтобы показать, как бы я хотел, чтобы результаты выглядели. Приведенный ниже кадр данных работает так, как мне хотелось бы, поскольку дублирующих идентификаторов нет.
Names<-c("John","John","John","Chris","Chris","Chris","Sara","Sara","Sara")
Category<-c("Accommodation","Disability","Living Arrangements","Accommodation","Disability","Living Arrangements","Accommodation","Disability","Living Arrangements")
Description<-c("Apartment","Vision","Alone","House","SCI","Family","Alone","Vision","Spouse")
df<-data.frame(Names,Category,Description)
Затем я использую Tidyr spread
создать широкоформатный фрейм данных:
dfS<-df%>%spread(Category,Description)
Это создает информационный кадр с "Category" в качестве переменных столбца, заполненных "Description".
Однако данные, с которыми я на самом деле работаю, похожи на приведенный ниже кадр данных, и когда я пытаюсь создать такой же аккуратный кадр данных, используя tidyr spread
как и выше, я получаю ошибку "дубликат идентификатора", поскольку у категории оборудования есть два варианта.
Names<-c("John","John","John","John","John","Chris","Chris","Chris","Chris","Chris","Sara","Sara","Sara","Sara","Sara")
Category<-c("Accommodation","Disability","Equipment","Equipment","Living Arrangements","Accommodation","Disability","Equipment","Equipment","Living Arrangements","Accommodation","Disability","Equipment","Equipment","Living Arrangements")
Description<-c("Apartment","Vision","Scooter","Walker","Alone","House","SCI","Walker","Bed","Family","Alone","Vision","Cane","Bed","Spouse")
df<-data.frame(Names,Category,Description)
Я не могу понять простой способ справиться с этой ситуацией. Я проверил другие сообщения здесь, и большинство из них слишком сложны или не работают. Я попробовал этот вариант:
df2<-df%>%group_by(Category,Description)%>%
summarise(Category=toString(unique(Category)))%>%
spread(Category,Description,fill='')
но это приводит к
"Ошибка: невозможно изменить группирующую переменную"
Я скопировал код из другого поста, поэтому признаюсь, что не совсем уверен, как он работает, и, возможно, допустил ошибку. Я все еще относительно новичок в R и особенно в tidyr, так что я надеюсь, что кто-то может предложить простое решение, которое позволит мне создать аккуратный информационный фрейм с использованием распространения tidyr в первом примере выше, предпочтительно с помощью dplyr или reshape2.