0

こんにちは、次の列を持つ日中データ テーブルがあります。

 date, stock_id, timestamp, price

まず、これを適切に注文するためにキーを追加しました。

setkeyv( my_table, c('stock_id','date','timestamp'))

データは次のようになります。

     date      timestamp    stock_id      price       
 2011-01-04    1.294128e+12    7          3402.0     
 2011-01-04    1.294129e+12    7          3402.5     
 2011-01-04    1.294129e+12    7          3407.5    

ここで、stock_price を戻り値に変換し、戻り値をログに記録したいと思います。

ループに頼らずに R と data.table のグループ化でこれを行う効率的でエレガントな方法を教えてください。

事前に感謝します。私はRに非常に慣れていません。

4

1 に答える 1

1

たまたま、R-Forge レポジトリの最新バージョン (v1.8.1) で新しい機能を使用して最も簡単に実行できることを尋ねました::=グループごとです。

どうですか(未テスト):

my_table[, logret:=c(NA,diff(log(stock_price))), by=stock_name]

ソースからコンパイルせずに R-Forge から v1.8.1 をインストールするには、R 2.15.0 以降を実行し、次のように入力する必要があります。

install.packages("data.table", repos="http://R-Forge.R-project.org")
于 2012-07-06T14:10:06.803 に答える