微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

r lubridate 中的 min 函数给出基准日期 1970-01-01 附近的整数而不是最小值?

如何解决r lubridate 中的 min 函数给出基准日期 1970-01-01 附近的整数而不是最小值?

这是一个例子。我需要提取最短观察日期,以便将表格扩展回开始日期。它正在工作,现在不是:在原点 1970-01-10 附近生成一个整数或日期?我尝试使用 as.Date() 转换为数字并返回,并将 na 函数更改为 na.omit 并阅读了大量帖子。我相信这很简单,但它已经打败了我。

library(tidyr)
library(lubridate)

tt <- tibble(month = factor(rep("Mar",15)),treatment = factor(rep(c("a","b","c"),each = 5)),observation = c("","","05-04-2019","24-04-2019","27-04-2019","28-04-2019","30-04-2019","05-05-2019","09-05-2019","12-05-2019","20-05-2019",""))

ts <- tt %>% mutate(observation = dmy(observation)) %>%
 group_by(treatment) %>%
  summarise(first = min(!is.na(observation)))
ts
# A tibble: 3 x 2

        treatment  first
        * <fct>      <int>
        1  a           0
        2  b           0
        3  c           0

解决方法

好的,问题在于缺失值。删除它们就可以了:-)

summarise(first = min(na.omit(observation)))

替换

summarise(first = min(!is.na(observation)))

玛雅克

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。