R 一个数据帧中的行中的值与另一个数据帧中的列之间的重叠

R 一个数据帧中的行中的值与另一个数据帧中的列之间的重叠,r,R,数据帧(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

数据帧(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的所有列中存在的那些

最后,我需要在两个数据帧之间求交(两个数据帧中只存在值)

因为这些列的实际数量是>~1200,所以我无法逐个筛选

除了转置,还有其他优雅的方式吗?

基本R解决方案:

df1 <- subset(df1, df1$V1 %in% names(df2))
df2 <- df2[,df1$V1]

df1嘿,你的问题可能会被否决,因为它不符合最低可重复性示例的要求,也不符合任何解决问题的尝试。阅读本文,或许可以分享更多信息?谢谢,我还在学习stackoverflow的方法:)我想补充的另一件大事是一个预期输出的例子,因为这还不完全清楚。根据您共享的数据,我认为预期的输出是
df1
,但没有包含“e”的行,因为它在
df2
中不作为列名出现?如果我仍然不清楚,我将需要df1和df2,但其值仅在两者中出现。我很抱歉,希望这更清楚一点,谢谢你的耐心。谢谢你现在更清楚了。我没有注意到有时候df2中的列在df1中不存在。谢谢!!这比我用转置、列表等进行的大屠杀要优雅得多。。。。
df1 <- subset(df1, df1$V1 %in% names(df2))
df2 <- df2[,df1$V1]