【发布时间】:2020-05-15 13:00:23
【问题描述】:
我编写了以下函数:
one_way_anova <- function(m, n, sample_means, sample_vars) {
keskiarvo = 1/m*sum(sample_means)
otosv = (sum((sample_means-keskiarvo)^2))/(m-1)
TS = (n*otosv)/(sum(sample_vars)/m)
parvo = 1-pf(TS, m-1, m*(n-1))
return(parvo)
}
并使用以下数据:
set.seed(1)
dat <- matrix(rnorm(300*20), nrow=300)
sample_means <- matrix(rowMeans(dat), nrow=100)
sample_vars <- matrix(apply(dat, 1, var), nrow=100)
m <- nrow(sample_means)
n <- ncol(sample_means)
现在我尝试使用 apply -function 来计算“parvo”,我的函数 one_way_anova 用于数据集 sample_means 的单个行,包含三个样本(矩阵为 100x3)。
apply(sample_means, 1, one_way_anova)
这会出现以下错误
Error in FUN(newX[, i], ...) : argument "sample_means" is missing, with no default
【问题讨论】:
-
也许是这个:
apply(sample_means, 1, function(x) one_way_anova(x, m, n, sample_vars))