我按以下方式有一个文本文件(每分钟数据)。
Date/Time Col1 Col2 Col3....
2021-01-01T00:00:00 20 12 34...
2021-01-01T00:01:00 .....
2021-01-01T00:02:00 .....
2021-01-01T00:03:00 .....
2021-01-01T01:04:00 .....
2021-01-01T01:05:00 .....
2021-01-01T01:05:00 .....
2021-01-01T01:07:00 .....
2021-01-01T02:08:00 .....
我使用稍后提到的 R 中的代码计算了我的数据(.txt 文件)每 15 行的平均值。我想要下面指定的特定方式的日期和时间列。
Date Time Col1 Col2 Col3....
2021-01-01 00:00:00 12 36 56
2021-01-01 00:15:00 34 54 43
2021-01-01 00:30:00 24 23 21
2021-01-01 00:45:00 12 36 56
2021-01-01 01:00:00 34 54 43
2021-01-01 01:15:00 24 23 21
2021-01-01 01:30:00 12 36 43
2021-01-01 01:45:00 12 36 34
2021-01-01 02:00:00 12 36 34
.
.
为此,我在 R 中运行了以下代码:
library(lubridate)
mn <- df %>% separate(`Date/Time`, into = c("Date", "Time"), sep = "T")
mnf <- mn %>%
as_tibble() %>%
group_by(group = as.integer(gl(n(), 15, n()))) %>%
mutate(
# Convert Date column into the Date datatype
Date = lubridate::ymd(Date),
# Convert Time column into the Period datatype (HMS). Then,
# change this to number of seconds
Time = period_to_seconds(hms(Time))
) %>%
summarise(across(everything(), mean)) %>%
summarise(across(everything(), ~ if(mean(is.na(.x)) > 0.8) NA else mean(.x, na.rm = TRUE)))
# Convert Time column from number of seconds
# back into the Period datatype (HMS). Omit this line
# if you'd prefer to have the average in seconds
mutate(Time = seconds_to_period(Time))
mnf
write.csv(min, 'C:/Users/Alexia/Desktop/Test/15row.csv')
我的问题是运行代码,时间列显示从 7 分钟、22 分钟、37 分钟开始的分钟...它们有 15 分钟的间隔,但我不明白为什么它从 7 分钟而不是 0 分钟开始?谁能帮忙。