【发布时间】:2016-03-27 10:10:00
【问题描述】:
我有一个列表向量(实际上是一个二维数组)。这些列表包含某些 ID,并且 ID 的数量因列表而异。我想根据列表(第一个 ID -> 第二个 ID -> .. 等等)对向量进行排序。我还想找出向量中出现的重复次数。 (在任何排列中,重复项都是不同列表中的相同 ID)。 例如:
vec = c( list(c(1,2)),list(c(1,2,3)),list(c(1,2)),list(c(2,3)),list(c(1,3,2)) )
vec
[[1]]
[1] 1 2
[[2]]
[1] 1 2 3
[[3]]
[1] 1 2
[[4]]
[1] 2 3
[[5]]
[1] 1 3 2
我希望输出对列表进行排序并提供重复项的数量。因此,输出必须按以下顺序排列: [[1]] -> [[2]] -> [[4]] 频率为 (2,2,1)。
【问题讨论】:
-
您能否提供一个可重现的小示例和基于此的预期输出。
-
请考虑阅读How to Ask 以及如何生成reproducible example。
-
输出不清楚。为什么第二个元素 1 2 3 出现在 2 3 即第 4 个元素之前,我猜第 5 个元素 1 3 2 也应该排序以获得频率?
-
首先,删除重复项。因此 1 3 2 被删除,因为它与 1 2 3 具有相同的元素。我们剩下 [[1]]、[[2]] 和 [[4]]。然后我们按元素的顺序升序排序(比较所有第一个元素,然后是第二个,然后是第三个)。因此顺序。
标签: arrays r list sorting duplicates