У меня есть набор данных, показывающий предпочтения конфет каждого человека. У каждого человека есть несколько строк для отображения всех конфет, которые им нравятся, как показано ниже.
Name ID Candy
Alex 101 Kit Kat
Alex 101 Twix
Sam 102 Reeses
Charlie 103 Skittles
Charlie 103 Twix
Charlie 103 Kit Kat
Charlie 103 Hershey
Nia 104 M&M
Nia 104 Skittles
Nia 104 Reeses
...
Я хочу преобразовать это в набор данных на уровне человека, где столбцы Candy ограничены первыми 3 в списке.
Name ID Candy 1 Candy 2 Candy 3
Alex 101 Kit Kat Twix NA
Sam 102 Reeses NA NA
Charlie 103 Skittles Twix Kit Kat
Nia 104 M&M Skittles Reeses
Первоначально я пытался использовать функцию Spread, но я считаю, что она не работает, потому что число строк на человека является переменным.
Есть ли способ добиться этого в Р? Я не совсем уверен, как подойти к этой проблеме.