R中的函数是否可以有多个变量

Is it possible to have multiple variables for a function in R

我正在开发一个函数,我想在其中测试三个时间序列的正态性。我创建了以下函数:

par(mfrow =  c(3,2))
graphicalnormality = function(x){
  plotNormalHistogram(x)
  normstats = c(mean(x), median(x), quantile(x, c(0.1, 0.9)))
  abline(v = normstats, col = 'red', lwd = 2)
  qqnorm(x)
  qqline(x)
}
graphicalnormality(OBX)
graphicalnormality(DNB)
graphicalnormality(DNO)

这是一个非常简单的函数,它可以按照我想要的方式工作,但由于我有点挑剔,而且我不确定它与 RMarkdown 的配合情况如何,所以我不想 运行 函数三次以获得我所有三个测试的图。所以我的问题是,是否可以一次性将所有三个数据集的函数设为 运行?

您可以修改您的函数以获取任意数量的向量,如下所示:

graphicalnormality = function(...) {
  dfs <- lapply(as.list(match.call())[-1], eval)
  for(x in dfs) {
    rcompanion::plotNormalHistogram(x)
    normstats = c(mean(x), median(x), quantile(x, c(0.1, 0.9)))
    abline(v = normstats, col = 'red', lwd = 2)
    qqnorm(x)
    qqline(x)
  }
}

所以你可以这样做:

par(mfrow =  c(3,2))
graphicalnormality(OBX, DNB, DNC)


数据

OBX <- rnorm(100)
DNB <- rnorm(100)
DNC <- rnorm(100)