目前,我使用此
获得中位数的95%CIx<-rnorm(100)
bootmed = apply(matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4), 1, median)
quantile(bootmed, c(.025, 0.975))[1]->a1
quantile(bootmed, c(.025, 0.975))[2]->a2
现在的问题是我需要为加权中位数做这个。我使用weightedMedian
包中的matrixStats
函数:matrixStats::weightedMedian
所以我不只有x和数字,但y也有权重(runif(100)) - 所以现在我计算
weightedMedian(x,runif(100))
但上述引导程序的等价物怎么样?
答案 0 :(得分:0)
...
函数的apply()
参数允许您将可选参数传递给函数。或者,您也可以定义自定义函数。假设您的中位数权重对于所有行都相同,您问题的答案如下:
x <- rnorm(100)
y <- rnorm(100)
M <- matrix(sample(x, rep=TRUE, 10^4*length(x)), nrow=10^4)
bootmed = apply(M, 1, weightedMedian, w=y)
# Or, alternatively..
bootmed = apply(M, 1, function(x) weightedMedian(x,y))