2014-09-03 152 views
0

我有两个数据框(a和b,比如说)和相似的rownames。我如何提取data.frame a中data.frame中不存在的行bR从数据框中提取不匹配的行

感谢, JD

+2

“类似” 或 “一致”? – 2014-09-03 17:16:43

+0

完全相同。对不起,我的语言不准确 – SigneMaten 2014-09-04 04:21:28

回答

1
如何

样?

a <- data.frame(V1 = rnorm(10), V2 = rnorm(10)) 
row.names(a) <- paste("row", row.names(a)) 

> a 
       V1   V2 
row 1 -0.26695225 -1.72322854 
row 2 0.17966753 -2.59861185 
row 3 0.09679525 -0.18304155 
row 4 -0.21904183 -0.67646542 
row 5 -0.64441966 -0.58033626 
row 6 0.28901284 0.01743280 
row 7 -1.38555961 0.09184929 
row 8 -0.60452736 0.08304690 
row 9 -0.03898833 0.01075546 
row 10 -0.21569958 -0.25948764 

b <-data.frame(V1 = rnorm(5), V2 = rnorm(5)) 
row.names(b) <- paste("row", row.names(b)) 

> b 
      V1   V2 
row 1 1.412045 -0.6990107 
row 2 -1.433099 0.8693957 
row 3 1.061640 1.2938895 
row 4 -1.715340 -0.6044137 
row 5 1.131158 -0.3148006 

a[setdiff(row.names(a), row.names(b)),] 

> a[setdiff(row.names(a), row.names(b)),] 
       V1   V2 
row 6 0.28901284 0.01743280 
row 7 -1.38555961 0.09184929 
row 8 -0.60452736 0.08304690 
row 9 -0.03898833 0.01075546 
row 10 -0.21569958 -0.25948764 
0

使用?setdiff如下:

a[ setdiff(rownames(a), rownames(b)), ]