如何按分钟在R中按组填写缺少的日期 [英] How to fill in missing dates by minute by group in R
本文介绍了如何按分钟在R中按组填写缺少的日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试从具有不同组的数据框中填写缺少的分钟。我想用0填充缺少的分钟。
I am attempting to fill in missing minutes from a dataframe that has different groups. I would like the missing minutes to be filled in with zeroes.
我尝试使用此,但找不到填补丢失的分钟的方法。
I tried to use this R - Fill missing dates by group but cannot find a way to fill in missing minutes.
Datetime | Group | Value |
2019-01-01 00:00:00 | 1 | 5 |
2019-01-01 00:00:00 | 2 | 4 |
2019-01-01 00:00:00 | 3 | 2 |
2019-01-01 00:01:00 | 1 | 1 |
2019-01-01 00:02:00 | 1 | 2 |
2019-01-01 00:02:00 | 2 | 2 |
2019-01-01 00:02:00 | 3 | 1 |
2019-01-01 00:03:00 | 1 | 1 |
2019-01-01 00:03:00 | 2 | 2 |
2019-01-01 00:04:00 | 1 | 1 |
我希望决赛桌看起来像这样-
I would like the final table to look like this -
Datetime | Group | Value |
2019-01-01 00:00:00 | 1 | 5 |
2019-01-01 00:00:00 | 2 | 4 |
2019-01-01 00:00:00 | 3 | 2 |
2019-01-01 00:01:00 | 1 | 1 |
2019-01-01 00:01:00 | 2 | 0 |
2019-01-01 00:01:00 | 3 | 0 |
2019-01-01 00:02:00 | 1 | 2 |
2019-01-01 00:02:00 | 2 | 2 |
2019-01-01 00:02:00 | 3 | 1 |
2019-01-01 00:03:00 | 1 | 1 |
2019-01-01 00:03:00 | 2 | 2 |
2019-01-01 00:03:00 | 3 | 0 |
2019-01-01 00:04:00 | 1 | 1 |
2019-01-01 00:04:00 | 2 | 0 |
2019-01-01 00:04:00 | 3 | 0 |
推荐答案
library(dplyr); library(padr)
df %>%
pad(group = 'Group', interval = 'min') %>% # Explicitly fill by 1 min
fill_by_value(Value)
#pad applied on the interval: min
# Datetime Group Value
#1 2019-01-01 00:00:00 1 5
#2 2019-01-01 00:01:00 1 1
#3 2019-01-01 00:02:00 1 2
#4 2019-01-01 00:03:00 1 1
#5 2019-01-01 00:04:00 1 1
#6 2019-01-01 00:00:00 2 4
#7 2019-01-01 00:01:00 2 0 # added
#8 2019-01-01 00:02:00 2 2
#9 2019-01-01 00:03:00 2 2
#10 2019-01-01 00:00:00 3 2
#11 2019-01-01 00:01:00 3 0 # added
#12 2019-01-01 00:02:00 3 1
数据
Data
df <- read.table(
header = T,
stringsAsFactors = F, sep = "|",
text = "Datetime | Group | Value
2019-01-01 00:00:00 | 1 | 5
2019-01-01 00:00:00 | 2 | 4
2019-01-01 00:00:00 | 3 | 2
2019-01-01 00:01:00 | 1 | 1
2019-01-01 00:02:00 | 1 | 2
2019-01-01 00:02:00 | 2 | 2
2019-01-01 00:02:00 | 3 | 1
2019-01-01 00:03:00 | 1 | 1
2019-01-01 00:03:00 | 2 | 2
2019-01-01 00:04:00 | 1 | 1"
)
df$Datetime = lubridate::ymd_hms(df$Datetime)
这篇关于如何按分钟在R中按组填写缺少的日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文