2016-10-05 82 views
1

我有兩個不同的行號和列號的矩陣。我可以比較行名並僅提取表2中不在表1中的行嗎? 即比較2表格和僅提取表格2唯一的行

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

我們可以使用%in%行名稱之間比較

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

非常感謝你akrun!我一直在嘗試約四個小時來做​​到這一點:) – Zoe

+0

@Zoe沒問題。很高興幫助你。請同時閱讀[this](http://stackoverflow.com/help/someone-answers) – akrun

+0

你能解釋一下,,drop = FALSE是什麼意思? – Zoe