2015-10-16 55 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