返回的最大和最小日期不同于排序列表的头部,尾部

时间:2017-09-29 15:56:04

标签: r

我发现了一些令人费解的行为。给出50个日期列表:

structure(c("15513", "12830", "16503", "-3628", "15833", "13553", 
"473", "17126", "7916", "74", "4736", "7712", "12726", "8684", 
"16217", "14725", "11836", "7061", "4687", "8733", "17176", "17175", 
"16155", "14005", "14635", "-1793", "4296", "15316", "4746", 
"6865", "14228", "5177", "4543", "1936", "10372", "-1393", "13648", 
"17267", "9177", "10380", "9427", "9527", "-1375", "2133", "13966", 
"336", "1925", "9611", "15601", "9218"), class = "Date")

我跑了这个:

head(sort(b), 1) ## prints "1960-01-26"
tail(sort(b), 1) ## prints "2017-04-11"

max(b)           ## prints "1996-04-25"
min(b)           ## prints "1966-03-28"

但令我感到困惑的是,当所有打印值都在一个列表中时,maxmin会返回预期结果。

dc = as.Date(c("1960-01-26", "2017-04-11", "1996-04-25", "1966-03-28"))
max(dc)    ## prints "2017-04-11"
min(dc)    ## prints "1960-01-26"

这是为什么?

1 个答案:

答案 0 :(得分:0)

min()和max()函数仅用于输入类“数字” 您的示例中的向量我类“日期”。 对于:

structure(min(as.numeric(example)), class ="Date")

“示例”是你的矢量,你得到了正确的解决方案......

希望这说清楚。

干杯