在没有平均中间值的情况下找到"中位数"

dat*_*ter 0 r

我想从我的数据集中提取一个或多或少在中间的实际日期. median()如果我有奇数个测量值,那么工作正常.但是,如果存在偶数个测量值,则会对中间两个进行平均,这会产生不在我的数据集中的日期.

对于以下示例:

mydates <- as.Date(c("2016-02-18", "2016-03-30", "2016-05-31", "2016-08-19"))
median(mydates)
Run Code Online (Sandbox Code Playgroud)

...我可以做些什么来让R返回"2016-03-30"或"2016-05-31",而不是"2016-4-30",这不在我的原始数据集中?

只要它是一致的,我不在乎它是早期还是后一个日期.

Gre*_*gor 5

使用该quantile功能并指定type为1,3或4.

> quantile(mydates, p = 0.5, type = 1)
         50% 
"2016-03-30" 
> quantile(mydates, p = 0.5, type = 3)
         50% 
"2016-03-30" 
> quantile(mydates, p = 0.5, type = 4)
         50% 
"2016-03-30" 
Run Code Online (Sandbox Code Playgroud)

详情?quantile请见.