查询data.table的函数

时间:2013-05-21 21:24:58

标签: r data.table

我有一个data.table,称为价格有3列:自动收报机,日期和价格。 我跑了

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?

1 个答案:

答案 0 :(得分:3)

您的问题是您的函数中的变量名称。将它们改为例如xy(因此它们与data.table中的列名称不同),一切都会有效。您现在正在做的是构建一个包含所有data.tableticker列的date,然后将其加入,从而恢复原始数据。

另一个(更强大的)选项是在你的函数中执行这样的smth:

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

有关详情,请参阅常见问题解答2.12和2.13 - http://datatable.r-forge.r-project.org/datatable-faq.pdf