【发布时间】:2020-07-10 15:25:04
【问题描述】:
我有一个问题,我有 2 个长度不等的列表,我想对它们进行 5000 次迭代的随机排列测试,以确定两者的均值差异是否显着。
dataset1v <- c(10, 10, 5, 10, 50, 2, 5, 50, 10, 40, 50, 20, 25, 20, 10, 10, 50, 10)
dataset2v <- c(50, 10, 20, 10, 40, 10, 20, 30, 10, 10, 80, 15)
所有关于随机排列测试的教程都假定列表长度相等,因此它们不适用,因为当我使用列表运行它时会弹出警告。我已经尝试过permutation.test.discrete 以及其他选项,但它始终是同一个问题:列表长度不相等。此外,我还想将每个数据重新采样为它们的原始列表长度(每个 18 和 12)。我是 R 编码的初学者,所以我花了好几个小时试图弄清楚如何解决这个问题。将不胜感激一些帮助和正确方向的指示!谢谢!!
【问题讨论】:
-
你不能分别从每个列表中分别替换 18 次或 12 次吗?
-
我为此做了一个循环,最终效果如何!我基本上将两者合并为一个长列表并分别对其进行采样,然后计算出两者的平均值并找出平均差,然后将其放入预制的空矩阵中。谢谢你的建议!!
a <- c() for(i in 1:5000){ data <- c(10, 10, 5, 10, 50, 2, 5, 50, 10, 40, 50, 20, 25, 20, 10, 10, 50, 10, 50, 10, 20, 10, 40, 10, 20, 30, 10, 10, 80, 15) s1 <- sample(data, size = 18, FALSE) s2 <- sample(data, size = 12, FALSE) M1 <- mean(s1) M2 <- mean(s2) MD <- (M1-M2) a[i] <- MD} -
好吧,这根本不是我的意思 ;) 1. 如果我们想估计 each 列表的
mean,我们不应该将它们合并,而是计算每个列表的平均值。 2.我们不是要使用replace=TRUE吗(否则我们每次都会得到完全相同的样本)
标签: r random permutation sampling