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

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

```

    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,
    .
    .
    .
    
```

表2.csv

```

    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,
    .
    .
    .
    
```

比較表.csv

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

```

    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,
    
```

Rの場合ですと

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

```

    #!/bin/bash
    r --vanilla --slave < disff.R
    
```

disff.Rで

```

    a <- read.csv("表1.csv")
    b <- read.csv("表2.csv")
    a - b
    
```

で引き算はできるのですが、そのあと差分がある部分の抽出方法がわかりません。
CC BY-SA 3.0
2015-01-24T14:21:25.713
5218
2015-01-26T13:50:38.977
2015-01-26T04:21:37.270
7590
7590
question
r sh
表１と表２を比較して、差がある部分がどこなのか表を出力したい。
bash で書いてみました(エラーチェックは省いてあります)。

```

    #!/bin/bash
    
    data1="$1"
    data2="$2"
    
    num=$(head -1 "$data1" | grep -Eo ',' | wc -l)
    eval $(eval "
      echo -n 'paste -d, '
      for ((i=1;i<=(num+1);i++))
      do
        echo -n \"
          <(paste -d' '
              <(cut -d, \"${data1}\" -f\$i)
              <(cut -d, \"${data2}\" -f\$i) |
            awk '{print (\\\$1-\\\$2)?1:0}') \"
      done
    ")
    
```

これを `cmp_csv.sh` として保存します。実行方法は以下となります。

```

    $ ./cmp_csv.sh data1.csv data2.csv
    
```

前提条件は、

  * data1.csv と data2.csv の列数・行数が同じ
  * データは全て数値

です。
CC BY-SA 3.0
2015-01-24T16:13:15.443
5222
2015-01-24T16:29:49.007
2015-01-24T16:29:49.007
5218
answer
Rで書く方法を回答します。  
data.frame 同士を引き算すれば同じ値のところはゼロになります。

```

    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
    
```

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

```

    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
    
```
CC BY-SA 3.0
2015-01-25T23:38:37.710
5275
2015-01-26T13:50:38.977
2015-01-26T13:50:38.977
2544
2544
5218
answer