Перекрытие между значениями в строке в одном кадре данных и столбцами в другом кадре данных - PullRequest
0 голосов
/ 30 января 2019

Фрейм данных (df1) имеет столбец с интересующей переменной (V1), некоторые из этих значений в этом столбце соответствуют именам столбцов в другом фрейме данных (df2).

Мне нужно найти перекрытиемежду значениями (строками) этого столбца в df1 и всеми столбцами в df2.

    head(df1)
            V1   CHR  MAPINFO    Pval
            a  2   38067017   0.27
            c  2   38070880   0.29
            d  2   38073394   0.00
            e  2   38073443   0.00
            f  2   38073564   0.01

 head(df2)
   a        b           c          d           f

  -0.09      -0.08      -0.50       0.50       0.35
   0.00       0.00       0.40      -0.40      -0.85
   0.32       0.30       0.20       0.74       0.42
  -0.41      -0.52      -0.72      -0.90      -0.96
   1.30       1.30       1.10       1.10       1.20
  -1.12      -1.78      -1.40       1.40       1.20

Например, в df2 нет «e», а в df1 нет «b».Как я могу сохранить только те, которые присутствуют как в df1 $ V1, так и во всех столбцах df2?

В конце мне нужно пересечь оба кадра данных (значения присутствуют только в обоих).

head(df1)
            V1   CHR  MAPINFO    Pval
            a  2   38067017   0.27
            c  2   38070880   0.29
            d  2   38073394   0.00
            f  2   38073564   0.01


head(df2)
   a              c          d           f

  -0.09         -0.50       0.50       0.35
   0.00          0.40      -0.40      -0.85
   0.32          0.20       0.74       0.42
  -0.41         -0.72      -0.90      -0.96
   1.30          1.10       1.10       1.20
  -1.12         -1.40       1.40       1.20

Поскольку действительное число этих столбцов составляет> ~ 1200, я не могу фильтровать один за другим.

Есть ли другой элегантный способ, кроме транспонирования?

1 Ответ

0 голосов
/ 30 января 2019

Базовый раствор R:

df1 <- subset(df1, df1$V1 %in% names(df2))
df2 <- df2[,df1$V1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...