datetime – 合并R中的聚合数据
发布时间:2020-12-13 20:44:59 所属栏目:百科 来源:网络整理
导读:跟进我的 previous question关于将每小时数据汇总到每日数据中,我想继续(a)每月汇总和(b)将每月汇总合并到原始数据帧中. 我的原始数据框如下所示: Lines - "Date,Outdoor,Indoor01/01/2000 01:00,30,2501/01/2000 02:00,31,2601/01/2000 03:00,33,2402/01/2
跟进我的
previous question关于将每小时数据汇总到每日数据中,我想继续(a)每月汇总和(b)将每月汇总合并到原始数据帧中.
我的原始数据框如下所示: Lines <- "Date,Outdoor,Indoor 01/01/2000 01:00,30,25 01/01/2000 02:00,31,26 01/01/2000 03:00,33,24 02/01/2000 01:00,29,25 02/01/2000 02:00,27,26 02/01/2000 03:00,39,24 12/01/2000 02:00,26 12/01/2000 03:00,24 12/31/2000 23:00,28,25" 我的previous question中已经回答了每日聚合,然后我可以找到从那里生成每月聚合的方法,如下所示: Lines <- "Date,Month,OutdoorAVE 01/01/2000,Jan,31.33 02/01/2000,Feb,31.67 12/01/2000,Dec,31.33" 其中OutdoorAVE是每日最低和最高室外温度的月平均值.我最终想要的是这样的: Lines <- "Date,Indoor,OutdoorAVE 01/01/2000 01:00,25,31.33 01/01/2000 02:00,26,31.33 01/01/2000 03:00,24,31.33 02/01/2000 01:00,31.67 02/01/2000 02:00,31.67 02/01/2000 03:00,31.67 12/01/2000 02:00,31.33 12/01/2000 03:00,31.33 12/31/2000 23:00,31.33" 我不知道如何做到这一点.任何帮助是极大的赞赏.
尝试ave和例如POSIXlt来提取月份:
zz <- textConnection(Lines) Data <- read.table(zz,header=T,sep=",",stringsAsFactors=F) close(zz) Data$Month <- strftime( as.POSIXlt(Data$Date,format="%m/%d/%Y %H:%M"),format='%b') Data$outdoor_ave <- ave(Data$Outdoor,Data$Month,FUN=mean) 给: > Data Date Outdoor Indoor Month outdoor_ave 1 01/01/2000 01:00 30 25 Jan 31.33333 2 01/01/2000 02:00 31 26 Jan 31.33333 3 01/01/2000 03:00 33 24 Jan 31.33333 4 02/01/2000 01:00 29 25 Feb 31.66667 5 02/01/2000 02:00 27 26 Feb 31.66667 6 02/01/2000 03:00 39 24 Feb 31.66667 7 12/01/2000 02:00 27 26 Dec 31.33333 8 12/01/2000 03:00 39 24 Dec 31.33333 9 12/31/2000 23:00 28 25 Dec 31.33333 编辑:然后只需计算数据中的月份,如上所示并使用合并: zz <- textConnection(Lines2) # Lines2 is the aggregated data Data2 <- read.table(zz,stringsAsFactors=F) close(zz) > merge(Data,Data2[-1],all=T) Month Date Outdoor Indoor OutdoorAVE 1 Dec 12/01/2000 02:00 27 26 31.33 2 Dec 12/01/2000 03:00 39 24 31.33 3 Dec 12/31/2000 23:00 28 25 31.33 4 Feb 02/01/2000 01:00 29 25 31.67 5 Feb 02/01/2000 02:00 27 26 31.67 6 Feb 02/01/2000 03:00 39 24 31.67 7 Jan 01/01/2000 01:00 30 25 31.33 8 Jan 01/01/2000 02:00 31 26 31.33 9 Jan 01/01/2000 03:00 33 24 31.33 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |