【发布时间】:2020-02-12 21:45:14
【问题描述】:
我有显示每个人的糖果偏好的数据集。每个人都有多行显示他们喜欢的所有糖果,如下所示。
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函数,但我认为它不起作用,因为每个人的行数是可变的。
有没有办法在 R 中实现这一点?我不太确定如何解决这个问题。
【问题讨论】:
-
对数据进行分组,每组取前 3 行,添加一列统计组内的行数,然后重塑
标签: r dataframe dplyr reshape spread