1

ティッカー、日付、価格の 3 つの列を持つ price という data.table があります。私は走った

setkey(prices,ticker,date)

コードからこれを行うと、動作します

prices[list("MSFT",as.Date("2013-01-15")]

2013-01-15 の MSFT の行のみを返す ただし、この関数を記述すると

getPrice <- function(ticker,date) {
  prices[list(ticker,date)]
}

それはdata.table全体を返します.iパラメータのスコープと関係があると思われますが、動作させることができません. 事前にパラメーターがわからない場合、data.table を照会するにはどうすればよいですか?

4

1 に答える 1

3

あなたの問題は、関数内の変数名です。それらを例えばxandに変更してy(それらが の列名と同じにならないようにdata.table)、すべてが機能します。あなたが今やっていることは、と列data.tableのすべてで を構築し、それを結合して、元のデータを復元することです。tickerdate

もう1つの(より堅牢な)オプションは、関数で次のようにsmthを実行することです。

getPrice <- function(ticker,date) {
  tmp = list(ticker, date)
  prices[tmp]
}

詳細については、FAQ 2.12 および 2.13 を参照してください - http://datatable.r-forge.r-project.org/datatable-faq.pdf

于 2013-05-21T21:33:13.473 に答える