R 将10分钟间隔数据转换为小时平均值
我有一个excel文件(.xlsx),包含三列,标题为:“datetime”(示例:10/1/2008 0:10、10/1/2008 0:20等)、“RH”(示例:0.46)和“wind_mps”(示例:3.71)。我希望将10分钟间隔数据转换为RH和wind_mps列的每小时平均数据 我无法在这个问题中插入Excel数据。很抱歉。如果有人告诉我怎么做,我可以编辑我的问题 一个类似的问题已经在上得到了回答,但我是R新手,无法对我的数据使用相同的技术。我还尝试使用“zoo”、“chron”和“xts”包来实现这一点,如中所示,但它们在R3.02中似乎不起作用 我试图在Excel中实现这一点,但找不到一种合理简单的技术 我能够使用Excel宏实现将另一个数据集的小时数据转换为日平均数据的类似任务,但对于10分钟的数据,我无法做到这一点。宏如下所示:R 将10分钟间隔数据转换为小时平均值,r,excel,time-series,vba,R,Excel,Time Series,Vba,我有一个excel文件(.xlsx),包含三列,标题为:“datetime”(示例:10/1/2008 0:10、10/1/2008 0:20等)、“RH”(示例:0.46)和“wind_mps”(示例:3.71)。我希望将10分钟间隔数据转换为RH和wind_mps列的每小时平均数据 我无法在这个问题中插入Excel数据。很抱歉。如果有人告诉我怎么做,我可以编辑我的问题 一个类似的问题已经在上得到了回答,但我是R新手,无法对我的数据使用相同的技术。我还尝试使用“zoo”、“chron”和“xt
Global year As Integer
Sub Calculate()
Dim start_year As Integer
Dim end_year As Integer
Dim cell_count As Integer
start_year = Cells(19, "M").Value
end_year = Cells(48, "M").Value
year = start_year
cell_count = 19
Do While year < (end_year + 1)
Dim row As Integer
Dim sum As Double
Dim count As Integer
Dim init_row As Integer
init_row = 6
sum = 0
count = 0
Dim cv As Integer
cv = 3
Do Until cv = year
cv = Cells(init_row, "C").Value
init_row = init_row + 1
Loop
row = init_row - 1
Worksheets("Sheet1").Activate
Dim cv1 As Integer
cv1 = Cells(row, "C").Value
Do While cv1 = year
sum = sum + Cells(row, "F").Value
count = count + 1
row = row + 1
cv1 = Cells(row, "C").Value
Loop
Cells(cell_count, "N").Value = sum
Cells(cell_count, "O").Value = count
Cells(cell_count, "P").Value = sum / count
cell_count = cell_count + 1
year = year + 1
Loop
End Sub
作为整数的全球年份
子计算()
Dim起始年为整数
Dim end_年为整数
Dim单元\u计数为整数
起始年份=单元格(19,“M”)。数值
年末=单元格(48,“M”)。数值
年份=开始年份
单元计数=19
执行年份<(年末+1)
将行设置为整数
双份点心
将计数设置为整数
Dim init_行作为整数
初始行=6
总和=0
计数=0
将cv设置为整数
cv=3
直到cv=年
cv=单元格(初始行,“C”)。值
初始行=初始行+1
环
行=init_行-1
工作表(“表1”)。激活
将cv1设置为整数
cv1=单元格(第“C”行)。数值
当cv1=年时执行
总和=总和+单元格(第“F”行)。值
计数=计数+1
行=行+1
cv1=单元格(第“C”行)。数值
环
单元格(单元格计数,“N”)。值=总和
单元格(单元格计数,“O”)。值=计数
单元格(单元格计数,“P”)。值=总和/计数
单元格计数=单元格计数+1
年份=年份+1
环
端接头
我是否使用R、Excel函数、宏或任何其他技术对我来说都无关紧要。如果有人能告诉我如何将RH和wind_mps的约50000个数据集转换为每小时平均值,那就太好了
提前感谢。这可以通过Excel数据透视表轻松完成
Insert
>Pivot Table
Value Field Settings
>Average
Group
,然后从出现的列表中选择Hours
希望这能满足您的要求xts/zoo很简单,我向您保证,它们可以使用R-3.0.2。所以您希望,在每个值旁边是每小时平均值(换句话说,它会重复6次-每10分钟一次)?@JoshuaUlrich我试过xts/zoo。有没有办法将数据帧转换为xts支持的矩阵?我试过这个:矩阵_rhwind@JohnBustos:我希望将10分钟的值聚合为每小时平均值。因此每小时将有一个值,即六个十分钟值的平均值。
as.xts.data.frame
假设日期时间是data.frame行名。如果它们不是行名,则需要显式调用xts
构造函数:xts(rh_wind2[,c(“rh”,“wind_mps”)],rh_wind2$datetime)
。然后你可以调用period.apply(x,端点(x,“小时”),意思是)。谢谢。我尝试过这个,但它似乎以一种奇怪的方式聚合了值。我希望我知道如何在不丢失格式的情况下将Excel数据复制到此注释中,以便向您展示正在发生的事情。请描述它?这可能是pivot表的一个问题,可以很容易地修复……在我按“小时”分组之前,一切都很顺利。我最终得到的数据使用标签“12AM”“1AM”等进行聚合,每个标签下大约有88个值。对我来说,最好的结果是每天每小时按一行聚合数据。有什么方法可以做到这一点吗?你可以选择多个项目,按时间、天数、月份等分组。。。