2015-06-21 60 views
3
 dfA <- data.frame(Efficiency=c(7,2,8,9), Value=c(3, 4, 7, 8)) 
    dfB <- data.frame(Efficiency=c(7,2,4,2,8,9), Value=c(3, 4, 4, 1, 7, 8)) 
    dfC <- data.frame(Efficiency=c(7,9), Value=c(3, 8)) 

我想获得dfA和dfB的通用行。从生成的data.frame中,我想删除与dfC具有相同值的行。 DFA和DFB(仅普通行) - DFC(重叠行)数据帧操作:过滤常见行并删除多行数据帧

+1

所以要'DFM < - 合并(DFA ,dfB,by = c(“Efficiency”,“Value”))',然后从'dfC $ Value'中减去'dfm $ Value',这个值更短,并且具有完全相同的值。我很困惑,请指定什么“常见行”的意思,什么应该从什么 – grrgrrbla

+0

@grrgrrbla扣除:我澄清说明 – suzukiav

+2

尝试'子集(合并(dfA,dfB),!(效率%在%dfC $效率和价值%dfC $ Value)) - dfC' – akrun

回答

4

这应该工作:

library(dplyr) 
inner_join(dfA, dfB) %>% anti_join(dfC) 

这给:

Efficiency Value 
1   8  7 
2   2  4 
+0

你必须从矩阵转换对象做一个data.frame像这样:'dfA < - data.frame(dfA)',如果这回答你的问题考虑通过点击箭头接受答案 – grrgrrbla

+0

我还不能投票。我首先需要15点声望。一旦我有了,我会给你投票。顺便说一下,如果我只想添加两个数据框,我该怎么办?假设dfA + dfB(将每个数据框的所有行集中在一个数据框中)非常感谢! – suzukiav

+0

这不是关于接受答案:),你可以在你问一个问题后总是这样做,它旁边有一个勾号,你可以点击接受答案;回答你的问题:根据你想要将它们按列还是按行绑定,可以是'rbind(dfA,dfB)'或'cbind(dfA,dfB)' – grrgrrbla