将data.table列映射到函数的命名参数

时间:2015-02-22 15:49:55

标签: r data.table

我有一个函数pva2(),其输入包含data.table,几个静态参数,然后是与data.table中的列对应的列名列表。

gazemap <- function (x, y, ez, ...) structure(as.list(match.call()[-1]), class = "uneval")

mapping <- gazemap(x=smi_sxl, y=smi_syl, ez=smi_ezl)
samplerate <- 500
screen.resolution <- c(1680, 1050)
screen.dimensions <- c(473.76, 296.1)

pva2 <- function(data, samplerate, screen.resolution, screen.dimensions, mapping) {
  .call <- formals(pva)
  .call <- modifyList(.call, mapping)
  .call$samplerate <- samplerate
  .call$rx <- screen.resolution[1]
  .call$ry <- screen.resolution[2]
  .call$sh <- screen.dimensions[1]
  .call$sw <- screen.dimensions[2]
  data[,eval(as.call(c(quote(pva),.call)))]
}

pva <- function(x, y, samplerate, rx, ry, sw, sh, ez, ex = 0, ey = 0, timestamp = -1, minsac=.02, vt=1000, at=100000, blinks = NULL) {}

pva2()本质上是pva()的包装器,它包含必需参数和可选参数。我需要一种方法将输入data.table中的列映射到函数pva()。现在我通过构建一个调用来做这个,映射存储在一个列表中(基本上从ggplot中获取了aes()的想法)。有没有人有更好的想法?或者提高效率的方法是什么?

0 个答案:

没有答案