比较2个表并提取仅对表2唯一的行

时间:2016-10-05 02:26:54

标签: r

我有两个不同行号和列号的矩阵。我可以比较行名称并仅提取表2中不在表1中的行吗? 即

a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3], c=letters[4:6])
a3 <- as.matrix(a1)
a4 <- as.matrix (a2)
row.names(a3) <- c("chr1:981994", "chr1:1025751", "chr1:1026919", "chr1:1118414", "chr1:1119410" ) 
row.names(a4) <- c("chr1:1118414", "chr1:1119410", "chr1:1216877") 

然后比较两者并创建一个新的矩阵 表2中的最后一行,因为它对表2是唯一的。

1 个答案:

答案 0 :(得分:1)

我们可以使用%in%来比较行名称

a4[!row.names(a4) %in% row.names(a3), , drop=FALSE]
#              a   b   c  
#chr1:1216877 "3" "c" "f"