#統計ソフトSASの配列操作について
SASを勉強し始めた初心者です。
配列の操作にてこずっています。
pythonでいうmylist.append("VALUE")のように、配列に要素を追加したいです。
追加したい要素数がオブザベーションによって異なります。
解決策として探しているのは
value1~value nまでの変数をループで作成できるようなもの
(そうしたら_CHARACTER_で配列に突っ込めそうな気がする…)
もしくは
listにループ中で追加できるようなもの
です。
N-gramを作りたいので、のちの加工を考えると可能な限り配列の形で変数を保持したいです。
どなたかご教示いただけないでしょうか。何卒宜しくお願い致します。
SAS
1data ngram; 2 set tmp; /* オブザベーション10,000件 */ 3 /*オブザベーションごとに長さの違うtextから単語数を抽出*/ 4 n = countw(text); 5 do i=1 to n; 6 tmpNGRAM = scan(text,i,' '); 7 /*これを配列に格納したい*/ 8 end; 9 drop i; 10run;
追記
一応この形でループを回しましたが、処理がバカみたいに重いです。
スマートな形ともあまり思えず、より良い方法を知りたいです。
SAS
1data ngram; 2 set tmp; /* オブザベーション10,000件 */ 3 /* 出力データからnの最大値を一度確認する */ 4 n = countw(text); 5 /* max(n)=950 */ 6 array ngram(950) $ n_1-n_950; 7 do i=1 to n; 8 /*これを配列に格納したい*/ 9 tmpNGRAM = scan(text,i,' '); 10 ngram(i) = tmpNGRAM; 11 end; 12 drop i; 13run;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/26 10:57
2020/01/26 11:06