2016-04-21 137 views
0

我需要比較到數據幀的列,以便找到那些行這column 2值超過或等於8比較兩個向量

例如小於column 1值,

DF 
V1 V2 
10 2 
20 29 
30 21 
40 60 

的輸出,我想已經是零和一的3rd column

DF 
    V1 V2 V3 
    10 2 1 
    20 29 0 
    30 21 1 
    40 60 0 

謝謝你的任何建議。

回答

1
DF$V3 <- ifelse(DF$V2 <= DF$V1-8, 1, 0) 
DF 
# V1 V2 V3 
# 1 10 2 1 
# 2 20 29 0 
# 3 30 21 1 
# 4 40 60 0 
+1

巨峯謝謝! :) – HoHoHo

+0

毫米即時對不起,但你的代碼分配1的每對值第二列是小於第一。但我只需要那些小了8 – HoHoHo

+1

謝謝你的幫助! – HoHoHo

4

我們可以根據在V1列中的條目是否比至少爲8該布爾矢量可以的值在V2列中的相應的條目更大產生一個布爾矢量TRUE/FALSE對於每一行,與所述值被強制爲數字1(1/0)與as.integer或與邏輯表達式前放置的一元運算符+

DF$V3 <- as.numeric(DF$V1 >= (DF$V2 + 8)) 
# V1 V2 V3 
#1 10 2 1 
#2 20 29 0 
#3 30 21 1 
#4 40 60 0 

DF$V3 <- +(DF$V1 >= (DF$V2 + 8)) 
+1

謝謝你的幫助! – HoHoHo