【发布时间】:2022-01-19 08:27:23
【问题描述】:
我的数据集中有多个重复项,仅考虑一个参数是无法解决的。所以我必须多次切片。
示例数据集:
DF <- data.frame(Object=c("A","A","A","B","B","C","C","C","D","D"),
Value = c(4,4,3,4,2,1,4,3,4,2),
Datetime = c("2022-01-19 10:01:00","2022-01-19 10:04:00","2022-01-19 10:01:00",NA,"2022-01-19 10:01:00","2022-01-19 10:01:00",NA,NA,"2022-01-19 10:01:00","2022-01-19 10:01:00"))
我按相关变量(由Object 表示)和第一个slice_max 对每行非NA 值的总和进行分组(由Value 表示)。仍有重复:
library(tidyverse)
library(lubridate)
DF %>%
mutate(Datetime=ymd_hms(Datetime)) %>%
group_by(Object) %>%
slice_max(Value)
# A tibble: 5 × 3
# Groups: Object [4]
Object Value Datetime
<chr> <dbl> <dttm>
1 A 4 2022-01-19 10:01:00
2 A 4 2022-01-19 10:04:00
3 B 4 NA
4 C 4 NA
5 D 4 2022-01-19 10:01:00
之后我想考虑一个日期时间。我想保留具有最小日期时间的行,但是如果组中没有具有当前值的行(只有 NA),我仍然想保留它。 Slice_min 删除仅存在 NA 值的组。缺少 B 组和 C 组。
# A tibble: 2 × 3
# Groups: Object [2]
Object Value Datetime
<chr> <dbl> <dttm>
1 A 4 2022-01-19 10:01:00
2 D 4 2022-01-19 10:01:00
如何在日期时间切片并保留不存在值的组行?
【问题讨论】:
标签: r