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)
我正在开发一个函数,我想在其中测试三个时间序列的正态性。我创建了以下函数:
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)