3 つの .csv を列数の異なる 1 つのファイルに結合します。

3 つの .csv を列数の異なる 1 つのファイルに結合します。

3 つの .csv ファイルがあり、それらを 1 つの .csv ファイルに結合して、R または Matlab で使用できるようにしたいと考えています。
ファイルは次のとおりです。

1597 obs of 167 variables;
160 obs of 167 variables;
533 obs of 146 variables 

MatLab で NaN の列を追加して垂直連結を試みましたが、列を正しい位置に揃えることができません。R でマージ機能を試しましたが、列数の問題に戻ってしまい、うまくいきませんでした。

ご協力いただければ幸いです。

ここに画像の説明を入力してください

答え1

ミラーの使用(https://github.com/johnkerl/miller)、例えばこれらの3つのCSVファイルがある場合

cat input01.csv
a,b
1,2

cat input02.csv
a,c
7,3

cat input03.csv
a,b,c
9,12,1

そして走ればmlr --csv unsparsify input0*csv >output.csv

+---+----+---+
| a | b  | c |
+---+----+---+
| 1 | 2  | - |
| 7 | -  | 3 |
| 9 | 12 | 1 |
+---+----+---+

例として次の 2 つの入力ファイルを使用します。

ランニング

mlr --csv unsparsify input_0*.csv >output.csv

この出力CSVが得られます

+------------------+-----------------+---------------+
| Plastic: Cleaner | Plastic: Drinks | Plastic: Caps |
+------------------+-----------------+---------------+
| -                | 7               | -             |
| 4                | 5               | -             |
| 5                | 3               | -             |
| 2                | -               | 8             |
+------------------+-----------------+---------------+

次に、Miller をインストールして、いくつかのテストを実行します。

関連情報