web-dev-qa-db-ja.com

SASを使用して文字列を2つの変数に分割する方法

  1. 私は以下のようなデータセットを持っています:

    country
    United States, Seattle
    United Kingdom, London
    

国をSASのようなデータに分割するにはどうすればよいですか?

    country                  city
    United States           Seattle
    United Kingdom          London
4
user3038725

区切り文字としてコンマを指定して関数SCAN()を使用します。

data test;
  set test;
  city=scan(country,2,',');
  country=scan(country,1,',');
run;
16
Dmitry Shopin

別のオプション、 INFILE magic(トピックに関する論文の用語をグーグルで検索); 1つの文字列から多くの変数を解析したり、引用符で囲まれたフィールドを処理したりする場合など、scanでより多くの作業が必要になる場合に便利です。

filename tempfile "c:\temp\test.txt";


data have;
input @1 country $50.;
datalines;
United States, Seattle
United Kingdom, London
;;;;
run;

data want;
set have;
infile tempfile dlm=',' dsd;
input @1 @@;
_infile_=country;
format newcountry city $50.;
input newcountry $ city $ @@;
run;

tempfileは、任意のファイル(または、早期のEOFを回避するために任意の文字を含むオンザフライで作成するファイル)にすることができます。

0
Joe