r - R 中变量组的均值和置信区间

标签 r statistics hmisc desctools

我是 R 的新手,我正在尝试做一些我认为应该非常简单但在线代码没有帮助的事情。

data <- structure(list(Group = c(1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3), 
Time = c(1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2), mean_PctPasses = c(68.26, 
60.2666666666667, 62.05, 66.3833333333333, 59.7333333333333, 
69.7714285714286, 57.1888888888889, 63.8875, 61.1833333333333, 
59.775, 66.2666666666667, 62.12), mean_AvgPassing = c(7.3, 
7.01111111111111, 6.35, 9.26666666666667, 6.68333333333333, 
8.78571428571429, 5.87777777777778, 8.3125, 7.63333333333333, 
7.7, 8.38333333333334, 6.89), mean_AvgRush = c(0.3, -0.3, 
3.5, 0.75, 5, 1.47142857142857, 5.71111111111111, 3.3875, 
2.74, 6.6, 4.5, 5), mean_Int = c(0.2, 0.777777777777778, 
0.25, 0.5, 1.5, 0.857142857142857, 0.777777777777778, 0.75, 
0.666666666666667, 0.75, 0.833333333333333, 1.1), mean_Rate = c(99.3, 
88.5222222222222, 80.5, 106.45, 77.2333333333333, 102.885714285714, 
76.8888888888889, 100.075, 92.1166666666667, 78.55, 98.05, 
79.56)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-12L), .Names = c("Group", "Time", "mean_PctPasses", "mean_AvgPassing", 
"mean_AvgRush", "mean_Int", "mean_Rate"))

使用这个数据集,我有 2 个分组变量“组”和“时间”。我想以表格格式获取变量 mean_PctPasses 到 mean_Rate 的每个组合的均值和置信区间,并将结果保存在表格中。我需要它在表格中,因为我稍后会在情节中引用它。在 SPSS 中执行此操作非常简单。

我已经尝试了几个功能,下面是我遇到的每个问题

library(rcompanion)    
ci.mean(mean_PctPasses~Group+Time, data = data)

library(DescTools)
MeanCI(data$mean_PctPasses)

library(Rmisc)
CI(data$mean_PctPasses,    ci=0.95)

MeanCI、ci.mean 和 CI 不允许列出多个变量并保存为表格(仅显示在控制台中)

by(data = data, data$Group, FUN = stat.desc)

这不允许我根据组和时间对数据进行分组。下面是我希望在 R 中构建的图表示例(在 SPSS 中显示)。

SPSS Example

在这方面的任何帮助/协助都会很棒。如果需要任何说明,请告诉我,我一定会编辑我的初始帖子。

更新

在一些很好的答案(谢谢 Rob 和 Steven)之后,我觉得我需要稍微澄清一下我的问题。 我想获得每个组(不是单独)的所有统计数据(mean_PctPasses 到 mean_Rate)的统计数据。下面显示了一个使用 Rmisc 生成我想要的变量统计信息的函数示例 库(Rmisc) group.UCL(mean_PctPasses~Group+Time, data, FUN=CI) 这只为 mean_PctPasses 提供了以下输出 Output Using Rmisc

但我想要的是以下内容(我已经进行了 Photoshop 处理) Image of Desired Ouput

当然,这可以以其他方向显示(下面使用 SPSS 和 SEM 的示例)。 Alternative Orientation example in SPSS

最佳答案

假设您只想为每个组使用通常的非合并 t 置信区间

require(dplyr)
alpha <- 0.05

data %>% 
    group_by(Group, Time) %>% 
    summarize(mean = mean(mean_PctPasses),
              lower = mean(mean_PctPasses) - qt(1- alpha/2, (n() - 1))*sd(mean_PctPasses)/sqrt(n()),
              upper = mean(mean_PctPasses) + qt(1- alpha/2, (n() - 1))*sd(mean_PctPasses)/sqrt(n()))

关于r - R 中变量组的均值和置信区间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48627391/

相关文章:

r - 使用过滤数据计算分类平均值

java - 在给定其他先验概率的情况下估计概率

perl - 如何在 Perl 中计算二进制统计数据?

r - 从 Hmisc 包中的 latex() 创建的表水平左对齐,而不是在 pdf 文档中水平居中

r - 将 xts 对象的秒设置为 0

r - 使用 knit_hooks$set(purl = hook_purl) 指定 R 脚本的输出目录

仅删除带有 NA 和/或零的列

python - Numpy std(标准偏差)函数奇怪的行为

r - ggplot2 两个data.frames,不知道如何处理 uneval 类的数据

r - 分组数据之间的横截面相关性并总结在 latex 表中