【发布时间】:2014-04-10 06:43:09
【问题描述】:
我整晚都在想这个问题: 这是我的矩阵:
'a' '#' 3
'#' 'a' 3
0 'I am' 2
'I am' 0 2
.....
我想将前两行视为相同的行,因为它只是“a”和“#”的顺序不同。就我而言,我想删除这种行。 玩具例子很简单,前两个是一样的,第三个和第四个是一样的。但在我的数据集中,我不知道“相同”行在哪里。
我正在用 R 写。谢谢。
【问题讨论】:
-
您要删除两个重复项还是只删除一个?
-
你想得到什么输出?
F T F T或T T T T? (F-not dup,T-dup) -
我认为这非常接近,但我遇到了一个错误。奇怪,因为如果您手动指定 i 和 n 它会起作用,但是当我让重复并控制它们时,它会出错。它应该标记所有重复行 NA。那么你可以删除它们
for(i in 1:length(df[,1])){x=(1:length(df[,1])) x=x[!x==i] for(n in x){if(sort(df[i,])[1]==sort(df[n,])[1]&sort(df[i,])[2]==sort(df[n,])[2]&sort(df[i,])[3]==sort(df[n,])[3]) df[n,1:3] <- NA} } -
我想要的输出是:F T F T 或 T F T F,这样我可以使用指标来挑选行
标签: r duplicate-data