我的問題似乎很簡單,但自幾個小時以來我無法解決…我有一個這樣的矩陣: [,1] [,2][1,] 1 2[2,] 2 1[3,] 2 1[4,] 3 4我想選擇具有相同信息的行,而不考慮列的順序。例如row1(1; 2)和row2(2; 1)。然后,我要刪除它們,除了一個。我已經編寫了此函數,但是它不起作用…f<-function(x){ i<-1 repeat { a<-c() a<-c(which(x[i,1]==x[,2] & x[i,2]==x[,1])) if(!is.null(a)) {x<-x[-c(a),]} if(i>=nrow(x)) {break} else {i<-i+1} } x} f(data)有人可以給我一個提示嗎?
1 回答

Smart貓小萌
TA貢獻1911條經驗 獲得超7個贊
像這樣:
unique(t(apply(mat, 1, sort)))
請注意,輸出行已排序,因此例如c(5, 1)原始數據中的“不匹配”行將出現c(1, 5)在輸出中。相反,如果您希望輸出行與輸入中的行相同,則可以執行以下操作:
mat[!duplicated(t(apply(mat, 1, sort))), ]
- 1 回答
- 0 關注
- 537 瀏覽
添加回答
舉報
0/150
提交
取消