2015-10-16 56 views
0

我的问题是这一个的发展:Identify value in 1 column corresponding to equal values in two another columns by row将值+1包含在视为等于比较两列的值?

所以,我想确定V1中的行的值取决于列V2和V3中的值。我以前的问题是如果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)行。

谢谢!

回答

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列之间差异的绝对值。

+0

谢谢!我确信有一个简单的解决方案:)我希望我会在下次记住这个想法:) – maycca