r - 在 R 中按组计算用户定义的函数输出

标签 r apply tapply

我正在尝试计算定期行间隔的 z 统计量。

mean = 77
std = 31
samp.45 = rnorm(45,mean,std)

z.test = function(a, mu, sd){
zeta = (mean(a) - mu) / (sd / sqrt(length(a)))
return(zeta)
}

z.hypothesis =  function(a, mu, sd){
z.stat = z.test(a,mu,sd)
if(abs(z.stat)>1.96){
return(1)
}
else{
return(0)
 }
}

group = as.numeric(ceiling(1:45/15))
df <- as.data.frame(cbind(samp.45, group))
## Correct this
tapply(df$samp.45, as.factor(df$group), z.hypothesis(df$samp.45,mean,std)) 

我打算使用tapply对每组进行函数计算并返回输出。我知道像 mean 这样的简单函数可以直接应用并给出所需的结果,但是我如何为我自己的函数获得类似的输出?也欢迎任何其他方法。

> tapply(df$samp.45, as.factor(df$group), mean)
       1        2        3 
78.19556 79.65747 68.91818 

最佳答案

tapply(df$samp.45, as.factor(df$group), function(x) z.hypothesis(x,mean,std))

关于r - 在 R 中按组计算用户定义的函数输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50678017/

相关文章:

python - 使用来自特定列的信息将函数应用于 Pandas 数据帧的每个单元格

r - 使用 NA 计算列表元素的最小值

从列表列表中删除 NA

r - 将 ggplot 分配给 for 循环中的变量

r - For 循环创建重复 ID block 的序列

R - if-else 应用于列表

R - 按组应用 adf.test

r - 使用因子水平将 corr 函数应用于矩阵?

r - 如何绘制显示真实叶子的茎叶图而不进行四舍五入

r - 如何用R数据框中的NA替换空字符串?