我有六組不同的數據,每一組數據都是大約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
看起來像一個不明智的方向。更好的辦法是把他們打包並用長形式工作。 –