如何选择具有相同数字绝对值的行

时间:2018-07-20 09:27:59

标签: r dataframe filter

    transaction  | sum
    -------------|--------
 1 | refill      | 1450
 2 | write-off   | -1450
 3 | refill      | 3500

我只选择那些绝对值与数字相同的值。有第1行和第2行。如何在R中做到这一点?

2 个答案:

答案 0 :(得分:1)

使用Andre的数据集的另一种方法:

df1<-data.frame(index=1:6,sum=c(1,2,3,-1,3,4))
df1[duplicated(abs(df1$sum)) | duplicated(abs(df1$sum), fromLast = T),]

这是基于以下顺序进行的:依次搜索正向副本,然后反向搜索副本,然后OR对结果进行匹配以匹配所有重复的案例。如此处所述:Find indices of duplicated rows

答案 1 :(得分:0)

df1<-
data.frame(index=1:6,sum=c(1,2,3,-1,3,4))

#  index sum
#1     1   1
#2     2   2
#3     3   3
#4     4  -1
#5     5   3
#6     6   4

keep <- abs(df1$sum) %in% abs(df1$sum[duplicated(abs(df1$sum))])

df1[keep,]

#  index sum
#1     1   1
#3     3   3
#4     4  -1
#5     5   3