【发布时间】:2018-02-23 18:45:05
【问题描述】:
我有一些看起来像这样的数据:
29 32 33 46 47 48
29 34 35 39 40 43
29 35 36 38 41 43
30 31 32 34 36 49
30 32 35 40 43 44
39 40 43 46 47 50
7 8 9 39 40 43
1 7 8 12 40 43
实际上还有很多数据,但我想保持简短。我想在 R 中找到一种方法来找到所有行的最长公共子序列并按频率(递减)排序,其中仅报告序列中具有多个元素和多个频率的那些公共子序列。有没有办法在 R 中做到这一点?
所以示例结果类似于:
[29] 3
[30] 2
...
( etc for all the single duplicates across each row and their frequencies )
...
[46 47] 2
[39 40 43] 3
[40, 43] 2
【问题讨论】:
-
“所有行的最长公共子序列”到底是什么意思?
-
@Nena 你问的不是很清楚。你能看到我的答案的输出与你想要的一致吗?
-
所有行中最长的公共子序列意味着:如示例中所示,每行之间的所有公共数字以及所有行重复组合的次数。假设行按升序排序。那有意义吗? EX:[39,40,43] 重复 3 次。尽管重复 [39, 40] 也可能是真的,但是由于最长的组合是 [39, 40, 43],因此采用该组合,因为它是最长的。希望这是有道理的
标签: r dataframe subsequence