我有一个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
,它只存储DF1
中DF2
匹配名称的which
列。
我已经尝试which
来查找我需要的列索引。但问题是我有很长的列名列表而GetDirectories
变得无用。
答案 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)