我有两个数据帧:
df1 (所有基因及其表达值-每一列名称都是一个基因)
df2 (需要分析的基因列表--每个基因都是一个列名,没有任何额外的数据)
基本上,我想通过列名将它们合并,获得第三个数据框架,即df1,但只有两个数据帧上的基因(常见的列名)。
我不知道我是否解释得很好,但如果我能提供更多的信息,请告诉我。
数据帧示例:
df1 <- data.frame(matrix(ncol = 4, nrow = 0))
x1 <- c("name", "school", "job", "gender")
colnames(df1) <- x1
df2 <- data.frame(matrix(ncol = 3, nrow = 0))
x2 <- c("name", "age", "gender")
colnames(df2) <- x2
基本上,这里我想要的是df1,但是可以简化为df1和df2上的列,这就是“名称”和“性别”。但是在我的工作中,我有很多基因,所以我不能逐个基因去做。
谢谢!
发布于 2020-03-24 23:56:51
我们可以在“df1”和“df2”的列名上使用df2来选择“df1”的列
df1new <- df1[intersect(names(df1), names(df2))]
或使用dplyr
library(dplyr)
df1new <- df1 %>%
select(intersect(names(.), names(df2))
https://stackoverflow.com/questions/60840919
复制相似问题