假设我有一个这样的数据框:
dfA<-data.frame(A=c(letters[1:3]),B=c(letters[4:6]),C=c(letters[7:9]))
>dfA
A B C
1 a d g
2 b e h
3 c f i
和另一个像这样:
dfB<-data.frame(replicate(12,sample(0:5,5,rep=T)))
colnames(dfB)<-sample(letters[1:9],12,rep=T)
> dfB
a a d d g e i c i a g h
1 0 3 3 2 2 1 2 4 1 2 4 0
2 2 2 3 0 0 0 4 4 1 5 2 1
3 4 5 0 3 2 4 3 5 1 4 2 3
4 0 1 0 4 4 3 2 2 1 2 3 1
5 4 0 2 1 2 4 0 5 5 0 5 1
我如何引用dfB中的所有列,其名称包含在dfA的A列中?
我是R的新手并且在这个论坛上搜索了很多,但是得不到确切的答案。
我试过这样的事情:sub<-subset(dfB, !colnames(dfB) %in% dfA$A)
到目前为止还没有令人满意的结果。
我想要的输出是:
> sub
a a c a
1 0 3 4 2
2 2 2 4 5
3 4 5 5 4
4 0 1 2 2
5 4 0 5 0
有人可以帮忙吗?
答案 0 :(得分:1)
正如akrun在评论中指出的那样
subset(dfB, select=colnames(dfB) %in% dfA$A)
完美无缺。