2016-03-10 58 views
4

我有我知道有名字列,他們的數據是0和1合併兩柱值

我想將它們合併成一個,但如果在一個行存在1取一個值或者,如果我有1和1保持1.

數據示例:

stockI stockII 
    1 0 
    1 0 
    0 0 
    0 0 
    0 0 
    0 0 
    0 0 
    1 0 
    0 0 
    1 1 

輸出I可以預期:

stockI/stockII 
    0 
    1 
    0 
    0 
    0 
    0 
    0 
    0 
    0 
    1 

是否有任何cbind方法使它成爲?

回答

3

我們可以嘗試

as.integer(with(df1, (c(FALSE,stockI[-1] & 
    stockI[-nrow(df1)]) & stockI) | (stockI & stockII))) 
#[1] 0 1 0 0 0 0 0 0 0 1 
+0

謝謝。只是一個澄清。如果我有超過2列,並且我想將它們結合到一個具有相同邏輯的列中,我只需要將它們的名稱添加到此'| (stockI&stockII&stockIII&price)))' – Eracog

+0

@Eracog您可以將它們放在列表中並使用'Reduce(「&」,df1)'第一個條件需要單獨完成 – akrun