Как извлечь записи для общих строк в нескольких фреймах данных в R - PullRequest
0 голосов
/ 24 марта 2020

У меня есть пять s d1-d5 с переменным количеством строк, каждая из которых превышает 3000, но равное количество столбцов (6): VarID, Name, LogFC, LogCPM,Pval and FDR. Около 1000 из VarID являются общими для пяти фреймов данных. Вот так выглядят данные в каждом фрейме данных

VarID           Name       LogFC       LogCPM       Pval       FDR
-------------------------------------------------------------------
varid1          Name1      logfc1      logcpm1      pval1      fdr1
varid2          Name2      logfc2      logcpm2      pval2      fdr1
-               -            -           -           -          -
-               -            -           -           -          -
-               -            -           -           -          -
varid3000+    Name3000+    logfc3000+   logcpm3000+ pval3000+  fdr3000+

I want to extract all the 1000+ common VarIDs from each dataframe to form extracted dataframes edf1-edf5. Then merge their LogFC values to a common dataframe, cdf in the following format:

ID               edf1-logfc    edf2-logfc    edf3-logfc    edf4-logfc    edf5-logfc
-----------------------------------------------------------------------------------
commonvarID1       a               b            c                d            e 
commonvarID2       f               g            g                h            a
-                  -               -            -                -            -
-                  -               -            -                -            - 
commnonvarID1000+  b               d            a                g            f

Я использовал common <- intersect(df1$ID,df2$ID), но это только создает пересечение для df1 и df2, что означает, что я должен использовать это commonvar, чтобы найти второе пересечение между это и df3, потом df4 и df5. В конце концов я не получаю то, что хотел. Будем очень благодарны за любые идеи относительно того, как это сделать в или .

Заранее спасибо.

...