如何在R中获取测试与图表所用的n值(观测数)
获取统计检验与图表中的观测数(n值)
一、Friedman检验场景(配对区组设计)
Friedman检验的核心是独立区组(即你的ID)数量,每个ID在不同Condition下对应一组观测值,获取n值有两种方式:
- 从检验结果直接提取:
先把检验结果存到变量里,再通过自由度反推区组数量:friedman_res <- friedman.test(data$Behaviour_1_Mean, data$Condition, data$ID) # Friedman自由度 = 处理组数量 - 1,区组数量n = 自由度 + 1 cat("Friedman检验的独立样本数(n):", friedman_res$parameter[["df"]] + 1, "\n") - 从原始数据统计:
直接统计唯一ID的数量,或者按Condition分组看每组观测数:# 独立样本数(总ID数) length(unique(data$ID)) # 每个Condition组的观测数 table(data$Condition) # 用dplyr更直观的分组计数(需先加载dplyr包) library(dplyr) data %>% count(Condition)
二、Wilcoxon秩和检验场景(非配对独立样本)
非配对Wilcoxon检验需要分别统计两组的样本量,方法如下:
- 从检验结果提取:
保存检验结果后,直接读取内置的样本量参数:wilcox_res <- wilcox.test(data$Behaviour_2_Mean ~ data$LightsOn_or_Off, paired = FALSE, exact = FALSE) # 输出两组样本量 cat("LightsOn组样本量:", wilcox_res$n[1], "\nLightsOff组样本量:", wilcox_res$n[2], "\n") - 从原始数据统计:
直接分组计数确认:table(data$LightsOn_or_Off) # 用dplyr分组计数 data %>% count(LightsOn_or_Off)
三、图表所用的有效观测数
ggplot会自动忽略含缺失值的行,所以图表实际用的是非缺失值的观测数:
- 第一个图表(data数据框):
# 总有效观测数(去掉Behaviour_1_Mean的缺失值) sum(!is.na(data$Behaviour_1_Mean)) # 按Condition分组的有效观测数 data %>% filter(!is.na(Behaviour_1_Mean)) %>% count(Condition) - 第二个箱线图(data2数据框):
# 总有效观测数 sum(!is.na(data2$Behaviour_2_Mean)) # 按分组变量的有效观测数 data2 %>% filter(!is.na(Behaviour_2_Mean)) %>% count(LightsOn_or_Off)
内容的提问来源于stack exchange,提问作者N3st0r
相关产品推荐
相关产品推荐

