R 数据帧列表中的时间解析摘要统计信息

R 数据帧列表中的时间解析摘要统计信息,r,apply,posixct,R,Apply,Posixct,我需要计算R中数据帧列表的汇总统计信息。数据帧是一个时间序列,其中日期列的格式为POSIXct。我需要计算数据帧中每个时间戳的最小平均值和最大值。数据帧不一定具有相同的日期时间范围,因此我无法按行索引计算统计数据 下面是我拥有的数据格式的一个最小示例 date0 <- as.POSIXct("2020-01-01 00:00") mylist <- list(df1 = data.frame(date = seq.POSIXt(from=date0,

我需要计算R中数据帧列表的汇总统计信息。数据帧是一个时间序列,其中日期列的格式为POSIXct。我需要计算数据帧中每个时间戳的最小平均值和最大值。数据帧不一定具有相同的日期时间范围,因此我无法按行索引计算统计数据

下面是我拥有的数据格式的一个最小示例

date0 <- as.POSIXct("2020-01-01 00:00")

mylist <- list(df1 = data.frame(date = seq.POSIXt(from=date0,
                                              by = "1 hour",
                                              length.out = 24),
                            y = rep(1,24)),
           df2 = data.frame(date = seq.POSIXt(from=date0,
                                              by = "1 hour",
                                              length.out = 48),
                            y = rep(0,48))
           )

date0您可以使用dplyr进行如下操作

library(dplyr)

# Creating data
date0 <- as.POSIXct("2020-01-01 00:00")

mylist <- list(
  df1 = 
    data.frame(date = seq.POSIXt(from=date0, by = "1 hour", length.out = 24), y = rep(1,24)),

  df2 = data.frame(date = seq.POSIXt(from=date0, by = "1 hour", length.out = 48), y = rep(0,48))
)

# Calculation
result <-
  mylist %>%
  # Convert list of dataframes into single dataframe
  bind_rows() %>%
  # Grouping by timestamp
  group_by(date) %>%
  # Calculating summary statistics
  summarise(min_y = min(y),
            max_y = max(y),
            mean_y = mean(y))

result

# date                min_y max_y mean_y
# <dttm>              <dbl> <dbl>  <dbl>
# 2020-01-01 00:00:00     0     1    0.5
# 2020-01-01 01:00:00     0     1    0.5
# 2020-01-01 02:00:00     0     1    0.5
# 2020-01-01 03:00:00     0     1    0.5
# 2020-01-01 04:00:00     0     1    0.5
# 2020-01-01 05:00:00     0     1    0.5
# 2020-01-01 06:00:00     0     1    0.5
# 2020-01-01 07:00:00     0     1    0.5
# 2020-01-01 08:00:00     0     1    0.5
# 2020-01-01 09:00:00     0     1    0.5
库(dplyr)
#创建数据
日期0%
#计算汇总统计数据
总结(最小值y=最小值y),
max_y=max(y),
平均值(y=平均值(y))
结果
#日期最小值和最大值平均值
#                  
# 2020-01-01 00:00:00     0     1    0.5
# 2020-01-01 01:00:00     0     1    0.5
# 2020-01-01 02:00:00     0     1    0.5
# 2020-01-01 03:00:00     0     1    0.5
# 2020-01-01 04:00:00     0     1    0.5
# 2020-01-01 05:00:00     0     1    0.5
# 2020-01-01 06:00:00     0     1    0.5
# 2020-01-01 07:00:00     0     1    0.5
# 2020-01-01 08:00:00     0     1    0.5
# 2020-01-01 09:00:00     0     1    0.5

您所说的跨数据帧的每个时间戳的最小平均值和最大值是什么意思。
?您能显示前几行的预期输出吗?看起来您希望按天而不是按“时间戳”进行汇总。如果是这种情况,您可以使用dplyr中的
as.date()
,然后使用类似于
groupby()和
summary()的内容格式化日期列