2015-02-23 119 views
-3

,我有以下的数据帧:比较两个来自不同数量的行[R]的两个数据帧列

df1 <- data.frame(row.names=1:4, id=c(1, 2, 3, 4), var2=c(10,20,30,40)) 
df2 <- data.frame(row.names=1:3, id=c(1, 2, 4), var2=c(10,20,40)) 

我要寻找一个命令来比较两个数据帧和回报id列在第二个数据框中丢失的记录的row.names: 如果你能帮助我,我将不胜感激。

+0

看那'%在%'功能。 – A5C1D2H2I1M1N2O1R2T1 2015-02-23 08:42:10

回答

1

你应该看看%in%

> which(!df1$id %in% df2$id) 
[1] 3 
> rownames(df1[!df1$id %in% df2$id, ]) 
[1] "3" 
> df1[!df1$id %in% df2$id, ] 
    id var2 
3 3 30 
0

你可以试试,

df1 <- data.frame(row.names=1:4, id=c(1, 2, 3, 4), var2=c(10,20,30,40)) 
df2 <- data.frame(row.names=1:3, id=c(1, 2, 4), var2=c(10,20,40))  
row.names(df1[!df1$id %in% df2$id,])