Есть длинная таблица, которую нужно преобразовать в широкую, но есть повторяющиеся строки в соответствии с переменной псевдоним
df_long <- data.frame(
pseudonym = c("a", "a", "a", "b", "c", "c"),
score = c(0.3 ,0.7, 0.2, 0.4, 0.9 , 0.8),
topic = c("car", "tree", "hill", "tree", "car", "hill"))
> df_long
pseudonym score topic
1 a 0.3 car
2 a 0.7 tree
3 a 0.2 hill
4 b 0.4 tree
5 c 0.9 car
6 c 0.8 hill
Я пытался преобразовать эту таблицу в следующей широкой таблице:
df_wide <- data.frame(
pseudonym = c("a", "b", "c"),
car = c(0.3 , NA, 0.9),
hill = c(0.2, NA, 0.8),
tree = c(0.7, 0.4, NA))
> df_wide
pseudonym car hill tree
1 a 0.3 0.2 0.7
2 b NA NA 0.4
3 c 0.9 0.8 NA
Код
df_long %>%
spread(key = topic, value = score)
выдает сообщение Ошибка: каждая строка вывода должна быть идентифицирована уникальной комбинацией клавиш . Ключи общие для 137108 строк:
Еще одна попытка с pivot_wider ()
df_long %>%
pivot_wider(names_from = topic, values_from = score)
приводит к Предупреждение: значения в score
не идентифицируются однозначно; вывод будет содержать столбцы списка. и столбцы списка.
Я думаю, мне нужно правильно установить другой параметр pivot_wider () или объединить его с группировкой. Хорошее решение будет очень кстати. Спасибо.