我的问题似乎很简单,但自几个小时以来我无法解决…我有一个这样的矩阵: [,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 关注
- 509 浏览
添加回答
举报
0/150
提交
取消