选择与列表中的名称匹配的列

时间:2016-03-04 11:58:18

标签: r

我有一个data.frame

DF1
a.x.c b.y.l c.z.n d.a.pl f.e.cl

由数字列

组成

我也有一个清单

DF2
a.x.c  c.z.n  f.e.cl

包含DF2

中某些列的名称

我需要创建DF3,它只存储DF1DF2匹配名称的which列。 我已经尝试which来查找我需要的列索引。但问题是我有很长的列名列表而GetDirectories变得无用。

你能帮忙吗?先谢谢你。

1 个答案:

答案 0 :(得分:5)

我们可以使用intersect获取两个数据集中常见的names,并使用它来将“DF1”的列子集化以创建“DF3”。

DF3 <- DF1[intersect(names(DF1),names(DF2))]
DF3
#  a.x.c c.z.n
#1     1     7
#2     2     8
#3     3     9

数据

DF1 <- data.frame(a.x.c = 1:3, b.y.l= 4:6, c.z.n=7:9)
DF2 <- list(a.x.c= 1:5, c.z.n=8:15, z.l.y=22:29)