这是我的数据的随机生成版本:
df=data.frame(matrix(NA, nrow = 25, ncol = 4))
df$X1=c(rep(1,5),rep(2,5),rep(3,5),rep(4,5),rep(5,5))
df$X2=c(1.08, 1.08, 0.45, 1.08, 0.45, 1.27, 2.63, 2.03, 1.08, 1.54, 2.03, 2.63, 1.08, 0.57, 2.63, 2.32, 0.57, 1.08, 0.37, 0.37, 1.27, 0.37, 2.48, 0.45, 2.48)
df$X3=c("Run-in", rep("Intervention",2),rep("Wash-out",2))
df$X4=c(rep("OF",5),rep("YF",5),rep("OM",5),rep("YM",5),rep("OF",5))
colnames(df)=c("subject", "ratio", "period", "group")
df$period = factor(df$period, levels=c("Run-in", "Intervention", "Wash-out"))
df
前几行如下所示:
subject ratio period group
1 1.08 Run-in OF
1 1.08 Intervention OF
1 0.45 Intervention OF
1 1.08 Wash-out OF
1 0.45 Wash-out OF
2 1.27 Run-in YF
2 2.63 Intervention YF
2 2.03 Intervention YF
2 1.08 Wash-out YF
2 1.54 Wash-out YF
3 2.03 Run-in OM
3 2.63 Intervention OM
3 1.08 Intervention OM
3 0.57 Wash-out OM
我想要做的是找出比率在研究期间(磨合、干预、冲洗)是否有显着差异,我想使用配对 wilcox 测试,因为它是同一组受试者每个采样点。
我最初使用时pairwise.wilcox.test
没有意识到“成对”和“成对”之间的区别。如果我尝试pairwise.wilcox.test(df$ratio, df$period, paired=T)
,我会收到错误消息:“wilcox.test.default(xi, xj,paired =paired, ...) 中的错误:'x' 和 'y' 必须具有相同的长度”
如果我尝试使用wilcox.test(ratio~period, df, paired=T)
我进行配对 wilcox 测试,则会收到错误消息Error in wilcox.test.formula(ratio ~ period, data = df, paired = T) : grouping factor must have exactly 2 levels
。
我如何告诉 wilcox.test 函数我想比较磨合与干预、干预与冲出以及磨合与冲出进行配对测试?
如果我做
df %>%
filter(period != "Intervention") %>%
group_by(period) %>%
summarise(p_value = wilcox.test(df$ratio, ratio, exact = FALSE)$p.value)
我得到了磨合干预和干预冲洗的比较,但没有磨合冲洗。它也没有配对。如果我尝试通过添加paired=T 使其配对,则会收到错误消息:
“错误:summarise()
输入有问题p_value
。x'x'和'y'必须具有相同的长度ℹ输入p_value
是wilcox.test(df$ratio, ratio, exact = FALSE, paired = T)$p.value
。ℹ第1组发生错误:周期=“磨合”。”
任何帮助表示赞赏。
谢谢