我一直在做:

mylist<- c(2,5,19,29)
Reduce("+", mylist)


结果:

[1] 55


没有任何问题。但是,然后我需要做一个中位数,所以我做了:

Reduce(median, mylist)


这给了我:

[1] 2


但答案应该是:

median(unlist(hom))
[1] 12


有人可以解释为什么Reduce()这样做吗?

最佳答案

Reduce需要二进制操作。 median不是。使用Reduce计算的基本上是median(2, median(5, median(19, 29)))之类的2,因为median的第二个参数被解释为median的第二个参数'na.rm'。

Reduce(median, mylist) = median(2, median(5,median(19,29)))
= median(2, median(5,19))
= median(2, 5)
= 2

关于r - R-Reduce()不适用于中位数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20294507/

10-12 18:55