我有六组不同的数据,每一组数据都是大约10,000行或更大的数据框,并且有两列。一列包含峰名称,如“peak_1”,另一列包含频率。其中一些数据帧包含相同的峰值,有些不。我的目标是找出哪些峰在哪些重叠的这六个数据框的子集(有6个数据集有63个不同的可能组合)。我发现可以找出维恩图子集(这是我正在寻找的)的包,但不是为6数据集,我已经尝试使用%in%
和which
,但随着我的数据集的大小我碰到路障,我无法图出。我试图通过将文件合并成所有可能的组合来手动确定它,然后根据文件的大小手动计算每个子集的大小,但是我似乎在那里采取了失误,并且我需要知道每个子集中包含的内容,而不仅仅是大小。确定R中多个数据帧的重叠和子集
例子:
dataA dataB dataC
V1 V2 V1 V2 V1 V2
peak1 3 peak2 1 peak1 1
peak2 1 peak3 2 peak4 3
peak5 2 peak4 1 peak6 1
peak8 1 peak8 2 peak8 4
peak9 2
这是结果我希望能实现的,其中数据X是不同的数据框(或类似的东西...我至少需要有新的表,我可以保存为文件)
dataA dataB dataC dataAB dataAC dataBC dataABC
V1 V2 V1 V2 V1 V2 V1 V2 V1 V2 V1 V2 V1 V2
peak5 2 peak3 2 peak6 1 peak2 2 peak1 4 peak4 4 peak8 7
peak9 2
我知道这是啰嗦,但是任何建议将受到欢迎,因为它似乎喜欢的事,应该是更直接的比我做吧!
我最初的反应是首先使用'dplyr :: bind_rows(...,.id =“source”)创建一个大数据框。然后,您可以生成各种交叉表述,以了解不同峰的来源和发生情况。使用这种“主数据框”,您可以为“数据源A”或“数据源B”创建附加指示符,并在进一步处理中使用该指示符。 – coffeinjunky
其中一个问题当然是您的理想输出实际上有点不清楚。例如,在你的'dataA'列中,所有其他值都没有被列出来呢?是什么导致他们被抛弃? – coffeinjunky
看起来像一个不明智的方向。更好的办法是把他们打包并用长形式工作。 –