我知道有很多方法,但是它们不适合我的要求。
我发现是唯一的,重复的,独特的,但是这些似乎可以与其他列/行进行比较。
我想要的是同一列的两个数据比较。
DT <- data.table(first=c("A","A","A","B","B","C","D"),
second=c("A","B","D","B","D","C","A"),
value=c(90,47,189,72,42,86,280))
我想找到first的值和second的值。如果它们相同,则将它们删除(仅相同的列)
输出:
first second value
1 A B 47
2 A D 189
3 B D 42
4 D A 280
我使用这些方法,只是返回相同的数据
DT <- unique(DT, by=c('first','second'))
DT <- DT[!duplicated(DT[,c("first","second")]),]
DT <- distinct(DT, first, second, .keep_all= TRUE)
也许方法很简单?只是我认为它太复杂了。
答案 0 :(得分:3)
使用data.table真的很简单!
DT[first != second,]
答案 1 :(得分:1)
这不只是吗?
DT[first != second, ]
# first second value
#1: A B 47
#2: A D 189
#3: B D 42
#4: D A 280
duplicated
,unique
执行逐行计算,这里我们要比较column1和column2,因此使用!=
的基本比较运算符就足够了。