2017-02-02 87 views
1

我有两个数据帧。我想仅考虑第一个值等于第二个数据帧的行的第一个值的列的第一个数据帧的子集。R - 比较具有两个不同数据帧的行的列

数据帧1:

columns_df1 : a b c d e 

数据帧2:

rows_df2 : a c e 

子集,我想获得:

final_columns_df1 = a c e 

我停留在如何与r进行比较ows属于两个不同的数据帧。

感谢您的帮助!

+0

你可以做'dput(columns_df1)'和'dput(rows_df2)'并把结果放在你的问题中吗? – Jean

+0

你可以用'spread()'将'df2'从'long'转换成宽格式。检查[这里](https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf)。那么你可以只是“加入”或“子集”或其他。 – Aramis7d

回答

0

好的。由于你没有提供完整的可重复的答案,所以你对问题的要求有点不清楚。但我认为这就是你要找的。

df1 <- data.frame(a = c(1, 2), 
       b = c(3, 4), 
       c = c(5, 6), 
       d = c(7, 8), 
       e = c(9, 10)) 

df2 <- data.frame(f = c("a", "b"), 
       g = c("c", "d"), 
       h = c("e", "f")) 

final_columns_df1 <- df1[ , names(df1) %in% df2[1, ]] 
final_columns_df1 
    a c e 
1 1 5 9 
2 2 6 10 
相关问题