表１と表２を比較して、差がある部分がどこなのか表を出力したい。


表１と表２を比較して、Rかshで差がある部分がどこなのかを出力したく存じます。

表1.csv  
（10行*300列くらい）

[code]

    1,2,3,4,5,・・・
    6,7,8,9,0,
    1,2,3,4,5,
    6,7,8,9,0,
    1,2,3,4,5,
    6,7,8,9,0,
    .
    .
    .
    
[/code]

表2.csv

[code]

    1,2,3,4,5,・・・
    6,7,8,9,0,
    1,2,3,4,5,
    1,7,8,9,0,
    1,2,3,4,5,
    1,7,8,9,0,
    .
    .
    .
    
[/code]

比較表.csv

表１と表２を比較して、差があった部分だけ1を立てます。

[code]

    0,0,0,0,0,
    0,0,0,0,0,
    0,0,0,0,0,
    1,0,0,0,0,
    0,0,0,0,0,
    1,0,0,0,0,
    
[/code]

Rの場合ですと

Rのスクリプトを起動して

[code]

    #!/bin/bash
    r --vanilla --slave < disff.R
    
[/code]

disff.Rで

[code]

    a <- read.csv("表1.csv")
    b <- read.csv("表2.csv")
    a - b
    
[/code]

で引き算はできるのですが、そのあと差分がある部分の抽出方法がわかりません。




Rで書く方法を回答します。  
data.frame 同士を引き算すれば同じ値のところはゼロになります。

[code]

    df1 <- read.csv("表1.csv", header = FALSE)
    df2 <- read.csv("表2.csv", header = FALSE)
    
    df1 - df2
    #>   V1 V2 V3 V4 V5
    #> 1  0  0  0  0  0
    #> 2  0  0  0  0  0
    #> 3  0  0  0  0  0
    #> 4  5  0  0  0  0
    #> 5  0  0  0  0  0
    #> 6  5  0  0  0  0
    
[/code]

ifelseで値がゼロかゼロでないかで場合分けをすると、以下のように書けます。  
こちらでご期待の回答になっているでしょうか？

[code]

    ifelse((df1 - df2) != 0, 1, 0)
    #>      V1 V2 V3 V4 V5
    #> [1,]  0  0  0  0  0
    #> [2,]  0  0  0  0  0
    #> [3,]  0  0  0  0  0
    #> [4,]  1  0  0  0  0
    #> [5,]  0  0  0  0  0
    #> [6,]  1  0  0  0  0
    
[/code]




Rで書く方法を回答します。  
data.frame 同士を引き算すれば同じ値のところはゼロになります。

[code]

    df1 <- read.csv("表1.csv", header = FALSE)
    df2 <- read.csv("表2.csv", header = FALSE)
    
    df1 - df2
    #>   V1 V2 V3 V4 V5
    #> 1  0  0  0  0  0
    #> 2  0  0  0  0  0
    #> 3  0  0  0  0  0
    #> 4  5  0  0  0  0
    #> 5  0  0  0  0  0
    #> 6  5  0  0  0  0
    
[/code]

ifelseで値がゼロかゼロでないかで場合分けをすると、以下のように書けます。  
こちらでご期待の回答になっているでしょうか？

[code]

    ifelse((df1 - df2) != 0, 1, 0)
    #>      V1 V2 V3 V4 V5
    #> [1,]  0  0  0  0  0
    #> [2,]  0  0  0  0  0
    #> [3,]  0  0  0  0  0
    #> [4,]  1  0  0  0  0
    #> [5,]  0  0  0  0  0
    #> [6,]  1  0  0  0  0
    
[/code]

