首页 > 解决方案 > 如何将参数列表传递给R中的方法?

问题描述

我正在尝试将参数作为列表传递给方法。我正在创建要传递给 data.frame 的方法。例子:

dfApply <- function(df, ...) {
  UseMethod("dfApply", df)
}

dfApply.sample <- function(df, size, ...) {
  # Stuff
  df <- sample_frac(df, size = size)
  return(df)
}

现在,如果我调用该函数:

args <- list(size = 0.5)
class(df) <- c("sample", class(df))
df <- dfApply(df, args)

该方法仍将其作为 list() 接收。

有没有办法传递这样的参数?

编辑: 正如评论中提到的,do.call()解决了这个问题(现在),但我必须定义每个参数args

args <- list(df = df, size = 0.5)
class(df) <- c("sample", class(df))
df <- do.call(dfApply, args)

这是实现方法的明智方法吗?似乎不对。

标签: rmethodsarguments

解决方案


推荐阅读