これは楽しい問題でした。私は次のように思いついた。
まず、いくつかのデータを読み込みます。
proc import datafile = "\\Datadrive\mydata.csv"
out=w_headers;
delimiter=";";
guessingrows=32767;
run;
proc import datafile = "\\Datadrive\no_headers.csv"
out=no_headers;
delimiter=";";
guessingrows=32767;
run;
次に、列と変数番号の名前をデータセットに抽出します。
proc contents data=w_headers out=meta(keep=NAME VARNUM) noprint ; run ;
次に、既存の名前に基づいて適切な名前を持つ名前のない列の名前を変更するコマンドを作成します。もの。
data meta;
set meta;
cmd = cats('VAR',VARNUM,'=', name);
run;
ここではキッカーが来て、私はその変数を変数に置きます。次に変数はproc datasets
に供給され、列の名前が変更されます。
proc sql noprint;
select cmd into :cmd_list separated by ' ' from meta;
quit;
proc datasets library = work nolist;
modify no_headers;
rename &cmd_list;
quit;
この時点で、私の2つのデータセットは同じ列名を持っています。このメソッドは少しトリッキーですが、機能します。別の方法があると確信していますが、これは楽しいものでした。 :)
こんにちは;サイトへようこそ。あなたがここで尋ねる質問は、現時点では一般的ではありません。私たちは大きな問題を解決するためにここにはいませんが、より小さな問題を解決するためにここにはいません。この場合、より多くの情報を提供する必要があるように聞こえます。これらのファイルの種類、ヘッダーファイルの外観などは、有用なヘルプを得る前に確認してください。 – Joe
他のファイルを記述するメタデータファイルがあるようです。これを使ってSASコードを生成することができます。完全な回答は、最初のファイルのレコードの一部と、それらのレコードが記述するファイルのデータの一部を投稿します。 – Tom
'最初の'ファイルのサンプルを表示するか、それがどのようにレイアウトされているかを記述します。命名規則を含む他のファイルのいくつかの例を示してください。ヘッダー情報をデータファイルにどのように関連付けるのですか?データファイルにヘッダー行があり、ヘッダー情報に異種データファイルのすべての可能な列の「辞書」が含まれていますか? – Richard