包括+1 -1左右的值被视为等于比较两列?

时间:2015-10-16 05:33:51

标签: r dataframe

我的问题是这个问题的发展:Identify value in 1 column corresponding to equal values in two another columns by row

所以,我想根据V2和V3列中的值来确定V1中行的值。我之前的问题是如果V2 = V3,如何识别V1中的值。但是,我想在值周围实现间隔+ - 1,因此认为是相等的值V2 + 1 = V3。请问,我怎么能包括这个条件?

这是我的代码:

m <- matrix(c(1,2,3,5,6,
              1,10,0,10,3,
              1,11,3,8,2), 5, 3) 
df1<-as.data.frame(m) 

> df1
  V1 V2 V3
1  1  1    1
2  2  10  11
3  3  0    3
4  5  10   8
5  6  3    2

使用df1 [df1 $ V2 == df1 $ V3,]我可以有相同的值,但如何包含+ - 1间隔?因此,对于相等的也将考虑行2(10 11)和5(3 2)。

谢谢!

1 个答案:

答案 0 :(得分:3)

df1[abs(df1$V2 - df1$V3) <= 1,]
#  V1 V2 V3
#1  1  1  1
#2  2 10 11
#5  6  3  2

使用abs检查第2列和第3列之间差异的绝对值。