0

Microsoft Access と SAS について、次のフィールド/列で構成された約 100 万のオプション価格のデータセットがあります。

DATE, COMPANY, PUT/CALL, PRICE

このPUT/CALL変数は、DATE-COMPANY の固有の組み合わせごとにPUTまたはCALLとして出力される標識変数です。

数字の例:

DATE             COMPANY          PUT/CALL       PRICE
2001/01/01       XOM              PUT            10
2001/01/01       XOM              CALL           12
2001/01/01       ABB              PUT            11
2001/01/01       ABB              CALL           13

私が必要とするのは、テーブルを次のように配置することです。

DATE, COMPANY, PUT PRICE, CALL PRICE

上記の数値の例では、出力は次のようになります。

数字の例:

DATE             COMPANY          PUT PRICE      CALL PRICE
2001/01/01       XOM              10             12
2001/01/01       ABB              11             13

SAS、Microsoft Access、またはその他のソフトウェアを使用してこれを完了する方法を誰かが知っていますか?

4

2 に答える 2

1

SAS では、これは非常に簡単です。

最初のテーブルが「HAVE」という名前のデータセットであり、日付/会社でソートされていると仮定します。

proc transpose data=have out=want suffix=price;
by date company;
id put_call;
var price;
run;

Access (または SQL) では、次のような SQL クエリを実行する必要があります。

create table want as select date,company,
 max(case when put_call='put' then price else null end) as put_price, 
 max(case when put_call='call' then price else null end) as call_price 
 from have group by date,company;

SQL サーバーでは、おそらくピボットを使用してこれを行うことができます。

于 2013-05-19T05:24:13.070 に答える