R 一个数据帧中的行中的值与另一个数据帧中的列之间的重叠
数据帧(df1)有一列,其中包含感兴趣的变量(V1),该列中的一些值对应于其他数据帧(df2)中的列名 我需要找到df1中该列的值(行)与df2中所有列之间的重叠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
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]