使用xts计算不规则每小时数据的日均值

时间:2017-01-03 16:20:57

标签: r xts

我有两个列数据集:<Grid.ColumnDefinitions> <ColumnDefinition Width="165" /> <ColumnDefinition Width="20" /> <ColumnDefinition Width="20" /> <ColumnDefinition Width="20" /> </Grid.ColumnDefinitions> <TextBox Text="{Binding Rank}" Background="Transparent" BorderThickness="0" /> <TextBlock Text="{Binding CarrierName}" Margin="20,0,0,0"/> Date。时间序列是不规则的每小时数据,我需要计算每日平均数据。

我的问题是最终文件只有一个值而不是整个Ozone列。我尝试了几个不同的版本,但我无法解决问题。

Ozone

3 个答案:

答案 0 :(得分:1)

这是dplyr解决方案:

library(dplyr)

df2 <- dataset1 %>% 
     mutate(date2 = as.Date(dataset1$Date)) %>% 
     group_by(date2) %>% 
     mutate(avg_ozone = mean(ozone)) %>%
     select(Date, ozone, avg_ozone)

答案 1 :(得分:1)

# Get 'day' from 'datetime'
# dataset1$day = as.POSIXct(dataset1$Date, format='%d/%m/%Y') # Apparently this caused problem
dataset1$day = do.call(rbind, strsplit(as.character(dataset1$Date)," "))[,1]

# Get Daily Averages
daily_averages = aggregate(ozone~day, dataset1, mean)

答案 2 :(得分:1)

您的可重现示例中没有任何内容告诉我您的输出存在问题(在我更正了format参数中的as.POSIXct参数中的拼写错误之后 - 它原来是{ {1}})。也就是说,您的示例只有一天的数据,因此文件中只应有一行输出。

这是一个可重复的示例,显示“每日”文件将有多个观察结果。

"%m\%d\%y %H:%M"