R - Reduce()不适用于中位数

cry*_*405 2 r

我一直在做:

mylist<- c(2,5,19,29)
Reduce("+", mylist)
Run Code Online (Sandbox Code Playgroud)

结果:

[1] 55 
Run Code Online (Sandbox Code Playgroud)

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

Reduce(median, mylist)
Run Code Online (Sandbox Code Playgroud)

这给了我:

[1] 2
Run Code Online (Sandbox Code Playgroud)

但答案应该是:

median(unlist(hom))
[1] 12
Run Code Online (Sandbox Code Playgroud)

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

dam*_*ois 11

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
Run Code Online (Sandbox Code Playgroud)