リレーショナルデータベースから(単一のSQLクエリから)インポートされた時系列データを次の形式で変換する簡単な方法を見つけようとしています
ticker date price num_tickers num_dates
------- ---- -------- ---------- ---------
t001 d1 pr001_d1 k n
t001 d2 pr001_d2 k n
...
t001 dn pr001_dn k n
...
t002 d1 pr002_d1 k n
t002 d2 pr002_d2 k n
...
t002 dn pr002_dn k n
...
t00k d1 pr00k_d1 k n
t00k d2 pr00k_d2 k n
...
t00k dn pr00k_dn k n
(最後の 2 列を含めたので、データを繰り返し処理しなくてもティッカーと日付の数がわかります)
これは次の形式で Mathematica にインポートされます
data = {{'t001',d1,pr001d1,k,n},{'t001',d2,pr001d2,k,n},...,{'t001',dn,pr001dn,k,n},
{'t002',d1,pr002d1,k,n},{'t002',d2,pr002d2,k,n},...,{'t002',dn,pr002dn,k,n}
...
{'t00k',d1,pr00kd1,k,n},{'t00k',d2,pr00kd2k,k,n},...,{'t00k',dn,pr00kdn,k,n}}
しかし、私はそれを次の形式で必要とします:
tickers = {'t001','t002',...,'t00k'}
dates = {d1,d2,...,dn}
timeseries ={{pr001_d1,pr002_d1,...,pr00k_d1},
{pr001_d2,pr002_d2,...,pr00k_d2},
...
{pr001_dn,pr002_dn,...,pr00k_dn}}
これは力ずくですべてをループすることで行うことができますが、Mathematica には非常に強力なリスト操作関数がいくつかあることを知っています (私はあまり詳しくありません)。ありがとう!