所以我有两个看起来像这样的数据帧
Dataframe1
rsid NA04015 NA16009 NA19117 NA16213 ...
rs2906360 0 0 1 0 ...
rs6936925 1 0 0 0 ...
rs####### 1 1 0 0 ...
... ... ... ... ... ...
Dataframe2
rsid NA04015 NA19117 ...
rs2906360 0.1332 -1.23 ...
rs4568525 0.47 0.252 ...
rs####### 1.43 0.232 ...
... ... ... ...
使用dplyr,我可以轻松地使用semi_join(Dataframe1, Dataframe2)
来获取Dataframe1的版本,该版本仅包含与Dataframe2中的匹配rsids
匹配的行。但是我想返回一个dataframe1版本,该版本仅包含那些列并且dataframe2中具有匹配的标头
所以我的结果看起来像这样:
Dataframe1_by_column
rsid NA04015 NA19117 ...
rs2906360 0 1 ...
rs6936925 1 0 ...
rs####### 1 0 ...
... ... ... ...
在dplyr中是否可以使用一种简单的语法?
答案 0 :(得分:0)
这行吗?
library(dplyr)
df1 <- data.frame(A="a", B="b", C="c", D="d")
df2 <- data.frame(A="a", D="d")
df1 <- df1 %>%
select(one_of(names(df2)))