這是我的樣本資料。我想為每個組創建序列,如下所示。
dt1<-data.frame(group=c("a","b"),start_time=c("2022-06-9 12:56:00","2022-06-9 12:52:00"),
end_time=c("2022-06-9 12:59:00","2022-06-9 12:56:00"))
> dt1
group start_time end_time
1 a 2022-06-9 12:56:00 2022-06-9 12:59:00
2 b 2022-06-9 12:52:00 2022-06-9 12:56:00
這就是我希望我的資料看起來的樣子
dt2<-data.frame(group=c("a","a","a","a","b","b","b","b","b"),
time_stamp=c("2022-06-9 12:56:00","2022-06-9 12:57:00","2022-06-9 12:58:00","2022-06-9 12:59:00",
"2022-06-9 12:52:00","2022-06-9 12:53:00","2022-06-9 12:54:00","2022-06-9 12:55:00",
"2022-06-9 12:56:00"))
> dt2
group time_stamp
1 a 2022-06-9 12:56:00
2 a 2022-06-9 12:57:00
3 a 2022-06-9 12:58:00
4 a 2022-06-9 12:59:00
5 b 2022-06-9 12:52:00
6 b 2022-06-9 12:53:00
7 b 2022-06-9 12:54:00
8 b 2022-06-9 12:55:00
9 b 2022-06-9 12:56:00
這是我在將變數轉換為 POXIct 型別后嘗試做的事情
dt2<-dt1%>%group_by(group)%>%
mutate(time_stamp=seq(start_date,end_date,by = "1 min"))
Error in `mutate()`:
! Problem while computing `time_stamp = seq(date1, date2, by = "1 min")`.
x `time_stamp` must be size 1, not 72421.
uj5u.com熱心網友回復:
與data.table:
library(data.table)
setDT(dt1)[ , list(group = group, time_stamp = seq(as.POSIXct(start_time), as.POSIXct(end_time), by = "1 min")), by = 1:nrow(dt1)]
nrow group time_stamp
1: 1 a 2022-06-09 12:56:00
2: 1 a 2022-06-09 12:57:00
3: 1 a 2022-06-09 12:58:00
4: 1 a 2022-06-09 12:59:00
5: 2 b 2022-06-09 12:52:00
6: 2 b 2022-06-09 12:53:00
7: 2 b 2022-06-09 12:54:00
8: 2 b 2022-06-09 12:55:00
9: 2 b 2022-06-09 12:56:00
uj5u.com熱心網友回復:
您可以先將資料轉換為“長”格式,然后使用seqincomplete生成序列。此外,您需要將列的“字符”型別轉換為“日期時間”( as.POSIXct)。
library(tidyverse)
dt1 %>% pivot_longer(ends_with("time"), names_to = "temp", values_to = "time_stamp") %>%
select(-temp) %>%
mutate(time_stamp = as.POSIXct(time_stamp)) %>%
group_by(group) %>%
complete(time_stamp = seq(min(time_stamp), max(time_stamp), by = "min"))
# A tibble: 9 × 2
# Groups: group [2]
group time_stamp
<chr> <dttm>
1 a 2022-06-09 12:56:00
2 a 2022-06-09 12:57:00
3 a 2022-06-09 12:58:00
4 a 2022-06-09 12:59:00
5 b 2022-06-09 12:52:00
6 b 2022-06-09 12:53:00
7 b 2022-06-09 12:54:00
8 b 2022-06-09 12:55:00
9 b 2022-06-09 12:56:00
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/488587.html
上一篇:R-在回圈中管道多個資料幀
