【发布时间】:2020-05-15 15:51:14
【问题描述】:
我有一个如下的数据框:
+------+-----+----------+
| from | to | priority |
+------+-----+----------+
| 1 | 8 | 1 |
| 2 | 6 | 1 |
| 3 | 4 | 1 |
| 4 | 5 | 3 |
| 5 | 6 | 4 |
| 6 | 2 | 5 |
| 7 | 8 | 2 |
| 4 | 3 | 5 |
| 2 | 1 | 1 |
| 6 | 6 | 4 |
| 1 | 7 | 5 |
| 8 | 4 | 6 |
| 9 | 5 | 3 |
+------+-----+----------+
我的目标是根据 from 列对“to”列进行分组,但如果变量已经存在于任一列中,我不想进一步考虑它们 此外,总优先级将是所有组优先级的总和
所以生成的数据框如下:
+------+------+----------------+
| from | to | Total Priority |
+------+------+----------------+
| 1 | 8, 7 | 6 |
| 2 | 6 | 1 |
| 3 | 4 | 1 |
| 9 | 5 | 3 |
+------+------+----------------+
另外,我希望在分组时保持与原始表格相同的顺序
我能够使用下面的“splitstackshape”包折叠从列
library(splitstackshape)
cSplit(df, 'to', sep = ','
+ , direction = 'long')[, .(to = toString(unique(to)))
+ , by = from]
这确实引入了重复值 我想知道是否有办法使用任何其他软件包获得所需的结果
【问题讨论】:
-
组是如何创建的?你能解释一下你的预期输出吗?我也不认为
cSplit在这里做任何事情。您的数据已经是长格式。