如何在有序对上做交叉,联合等?

时间:2012-03-15 12:13:13

标签: r

是否有一组与intersectunion等类似的R函数作用于坐标向量?取N个维度的两个位置集合,每个位置可以被M位置数组视为N行,并找到公共位置(即列),依此类推。我想这可以通过一对*apply行来完成,将一个数组中的每一列与另一个数组中的列进行比较,但希望更快或更整洁。

1 个答案:

答案 0 :(得分:3)

有一个'sets'包,但最简单的解决方案是使用基集设置操作:unionintersectsetdiff对{{1}的结果使用paste之类的分隔符。如果这些值被表示为“数字”值,您可能需要对“真正意义上的平等”做出决定,因此可能需要"_" - 或round - 。

另一个想法是,在您使用“plyr”函数描述的列式排列中,实现可能更加自我记录:trunc。我不是plyr方法的专用用户,但这似乎是它的开始:

colwise

尽管该函数的描述表明它应该作为数据框架上的独立函数运行,但所有图示的用途都是colpastefn <- colwise( function(...){paste(... , sep="_") )