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



下面是一个例子。我需要提取最小观测日期,以便将表扩展回开始日期。它以前是有效的,现在不是:产生一个整数或日期在原点1970-01-10附近?我尝试过转换为数字和返回,使用as.Date()并将na函数更改为na。省略和阅读大量的帖子。我知道这很简单,但它把我打败了。

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)))

madjac

相关内容

最新更新