【发布时间】:2020-05-28 15:39:36
【问题描述】:
我有一些看起来像这样的数据:
# A tibble: 754 x 2
time v1
<dttm> <dbl>
1 2020-04-16 09:45:00 175.
2 2020-04-16 10:00:00 174.
3 2020-04-16 10:15:00 174.
4 2020-04-16 10:30:00 173.
5 2020-04-16 10:45:00 174.
我想从lubridate 包中group_by 一个变量day 并应用ifelse 语句。
df %>%
mutate(
day = day(time)
) %>%
group_by(day) %>%
mutate(
lessThanTenThirty = ifelse(time < "10:30", 1, 0)
)
因此,当数据小于 10:30 时,所有time(所有天)的预期输出为1,之后所有time 的输出为0。
数据:
df <- structure(list(time = structure(c(1587030300, 1587031200, 1587032100,
1587033000, 1587033900, 1587116700, 1587117600, 1587118500, 1587119400,
1587120300), tzone = "UTC", class = c("POSIXct", "POSIXt")),
v1 = c(174.52, 174.25, 173.69, 173.07, 174.015, 179.578,
178.41, 178.42, 178.98, 178.6)), row.names = c(NA, -10L), class = c("tbl_df",
"tbl", "data.frame"))
【问题讨论】:
标签: r datetime dplyr lubridate