0

这是我的数据的随机生成版本:

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_valuewilcox.test(df$ratio, ratio, exact = FALSE, paired = T)$p.value。ℹ第1组发生错误:周期=“磨合”。”

任何帮助表示赞赏。

谢谢

4

0 回答 0