我的问题是这个问题的发展: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)。
谢谢!
答案 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列之间差异的绝对值。