两个向量之间的所有成对差异

时间:2016-03-29 18:25:04

标签: r

假设我有两个向量:

X1 <- c(44350, 38920, 37530, 42280, 37320, 36910, 35720, 31220, 33400, 40710, 43830, 37390, 32340, 30770, 35800, 40250, 31490, 40460, 33730, 35850, 35320, 37500, 35380, 40910, 29040, 33950)

X2 <- c(30390, 34170, 28910, 30660, 32510, 30540, 31990, 32380, 32110, 31260, 34670, 28240, 31840, 33350, 32150, 35640, 30730, 30280, 29420, 30990, 32880, 33280, 36960, 36990)

我有兴趣计算X1&lt;成员的所有成对实例。 X2的成员。

对于任何两个向量,我如何在R中执行此操作?

现在,假设我希望将两个向量组合,随机化,分成两个长度为(X1)和长度(X2)的向量,然后按上述计算 - 创建一个随机分布以与初始计数进行比较。

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

在X2中的X1和b中具有&lt;的实例的计数。 B'/ P>

(s <- sum(outer(X1,X2,`<`)))
# [1] 106

结合两个

X <- c(X1,X2)

随机播放,重拍和重新测试

set.seed(1)

r <- replicate(1000000, {
  X <- sample(X)
  X1 <- head(X,length(X1)) 
  X2 <- tail(X,length(X2))
  sum(outer(X1,X2,`<`)) })

(p <- 1 - sum(s <= r)/length(r))
# [1] 1e-05


注意:听起来你可能正在寻找像wilcox.test下的Mann-Whitney测试。

> wilcox.test(X2,X1)

        Wilcoxon rank sum test

data:  X2 and X1
W = 106, p-value = 2.858e-05
alternative hypothesis: true location shift is not equal to 0

W = 106与上面的s = 106进行比较。