我有一个包含10列的数据集。第一列是唯一标识符。其他9列是相关的属性。现在,我们只是说它们是整数。如果需要,数据可以很容易地转换为键值。唯一组合频率
例:
id|attr1|attr2|attr3|...
a | 2 | 5 | 7 |...
b | 3 | 1 |null |...
c | 2 |null |null |...
d | 1 | 2 | 5 |...
e | 2 | 1 | 3 |...
我本质上寻找任何长度的至少一对最常见的组合。所以我对这个输出是:
unq | frequency
1,2 | 2
1,3 | 2
1,5 | 1
2,3 | 1
2,5 | 2
2,7 | 1
1,2,3 | 1
1,2,5 | 1
2,5,7 | 1
(手动这样做 - 所以希望没有错误) - 在配对的顺序并不重要。 2,5,7 = 5,2,7 = 7,5,2 etc.
有什么想法?我对不同的工具开放。我有权访问R,excel,sql server,mysql等。
Excel
是首选,但不是必需的!
有多少属性,以及属性可以采用的值的范围是多少?一个天真的算法可能不会扩展,我不知道是否有任何易于理解的算法(但我不是这方面的专家) – frankc 2011-06-10 15:33:05
你能解释你如何从你的数据集到你的答案?我正在努力理解“至少有一对任何长度的最常见的组合”。 – 2011-06-10 16:24:23
得到了一些更好的信息。它可以有1到9个属性。 @Richie - 基本上为行d - 这里是所有该行(分号分隔)的独特组合: '1 1,2- 1,5- 2,5- 1,2,5-' 所以唯一符合“至少一对”标准的是 1,2 1,5 2,5 1,2,5' 这有帮助吗?如果没有,请随时再问一次。我想在我的答案中清楚。 – elgabito 2011-06-10 16:40:55