Изменение столбцов для получения уникальных значений, транспонирование другого столбца и добавление процента этих уникальных значений.

У меня есть подмножество данных, которое выглядит следующим образом:

Item Code Percentage
10000 123 0.2
10001 134 0.98
10001 152 0.02
10002 123 0.68
10003 123 1
10002 178 0.32
10004 189 1

Я хочу найти способ транспонирования таким образом, чтобы я сохранял только уникальные значения из столбца A, столбец B рассредоточен по разным столбцам в соответствии с уникальными значениями, а процентное соотношение заполняется этими значениями. См. Пример данных, которые я хочу дополнить:

Item 123 134 152 178 189
10000 0.2 0 0 0 0
10001 0 0.98 0.02 0 0
10002 0.68 0 0 0.3 0
10003 1 0 0 0 0
10004 0 0 0 0 1

В настоящее время я использую следующий формат:

df <-df %>% group_by(Item) %>% mutate(n = row_number()) %>% spread(Code, Percentage)

Следуя этой структуре, я все еще получаю повторяющиеся (не уникальные) значения в столбце A. Я загрузил библиотеку (plyr), библиотеку (dplyr), библиотеку (tidyr) именно в таком порядке. Причина, по которой я упомянул, заключается в том, что я где-то читал, если вы измените порядок работы, но в итоге испортили результаты.

Если вам нужна дополнительная информация, дайте мне знать. Спасибо!

plyr находится на пенсии уже несколько лет назад. Вы можете сделать это с помощью tidyr, синтаксис которого также обновлен с spread до pivot_wider. Есть много ТАКИХ вопросов по этой же задаче; Я выкопаю несколько, чтобы отметить   —  person guirgo__    schedule 25.02.2021

Отвечает ли это на ваш вопрос? Почему pivot_wider считывает отдельные значения как дубликаты или создает длинный и широкий тиббл (без объединения строк)?   —  person guirgo__    schedule 25.02.2021

См. Также stackoverflow.com/q/64169332/5325862   —  person guirgo__    schedule 25.02.2021

Всем привет! Спасибо большое за вашу помощь! Оба варианта у меня сработали легко! Действительно ценю это!   —  person guirgo__    schedule 25.02.2021

Источник: ledsshop.ru

Стиль жизни - Здоровье!