楼主: giggle嘉禾
5745 7

[问答] 将日频度数据变为月频度数据 [推广有奖]

  • 1关注
  • 0粉丝

初中生

76%

还不是VIP/贵宾

-

威望
0
论坛币
3 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
177 点
帖子
13
精华
0
在线时间
15 小时
注册时间
2016-7-30
最后登录
2017-1-19

楼主
giggle嘉禾 发表于 2016-8-1 15:42:39 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
1961/1/1        491
1961/1/2        481
1961/1/3        472
1961/1/4        472
1961/1/5        467
1961/1/6        462
1961/1/7        443
1961/1/8        443
1961/1/9        443
1961/1/10        433
1961/1/11        433
1961/1/12        433
1961/1/13        424
1961/1/14        424
1961/1/15        414
1961/1/16        414
1961/1/17        409
1961/1/18        404
有1961/1/1~2010/1/1日的数据,第一个问题是怎样把后面日的数据按照月份累加起来(比如1961年一月数据总和)?
第二个问题是怎么计算每一年前三个月,前6/9/12个月的数据累积和?
求帮忙帮忙
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:累积和 求帮忙 月数据

回帖推荐

jiangbeilu 发表于2楼  查看完整内容

如果您的数据不是很多的话,建议用excel数据透视表,可以对每个月数据进行加总,只要每个月的指标出来了,其它都好做的。 如果需要用R的话,建议先安装lubridate包,利用这个包,把年份和月份提取出来,然后用tapply进行分类加总,最后再求累计值。比如1-3月份用A表示,这样就分成了A,B,C,D 4个类,这样可以再进行加总计算,然后再用cumsum累加就可以了。

沙发
jiangbeilu 学生认证  发表于 2016-8-1 19:52:23
如果您的数据不是很多的话,建议用excel数据透视表,可以对每个月数据进行加总,只要每个月的指标出来了,其它都好做的。
如果需要用R的话,建议先安装lubridate包,利用这个包,把年份和月份提取出来,然后用tapply进行分类加总,最后再求累计值。比如1-3月份用A表示,这样就分成了A,B,C,D 4个类,这样可以再进行加总计算,然后再用cumsum累加就可以了。
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 35 + 5 + 5 + 2 热心帮助其他会员

总评分: 论坛币 + 35  学术水平 + 5  热心指数 + 5  信用等级 + 2   查看全部评分

藤椅
DerekWei 在职认证  发表于 2016-8-2 06:03:44
赞同楼上,EXCEL 2016版本的数据透视表有自动按月汇总功能,比较方便。

板凳
giggle嘉禾 发表于 2016-8-3 09:21:06
jiangbeilu 发表于 2016-8-1 19:52
如果您的数据不是很多的话,建议用excel数据透视表,可以对每个月数据进行加总,只要每个月的指标出来了,其 ...
啊啊,你好,我数据有130多组,就是因为比较多,我才想用r实现的!谢谢你的指导,我去看一下

报纸
giggle嘉禾 发表于 2016-8-3 09:21:51
DerekWei 发表于 2016-8-2 06:03
赞同楼上,EXCEL 2016版本的数据透视表有自动按月汇总功能,比较方便。
你好,因魏数据比较多,数据透视表只能一个一个拉很不方便

地板
giggle嘉禾 发表于 2016-8-3 11:00:35
jiangbeilu 发表于 2016-8-1 19:52
如果您的数据不是很多的话,建议用excel数据透视表,可以对每个月数据进行加总,只要每个月的指标出来了,其 ...
你好,再请教一下,有133列数据,所以写了一个循环的语句
for(i in 4:136) {x<-tapply(y[,i],list(y$year,y$mon),sum)}
但是我不清楚应该怎么把每次循环的结果都存在一个数据框里面,for语句里面还要怎么写?
我的最终目的是打开一个数据框,其中的显示就是133组分组累加结果

7
giggle嘉禾 发表于 2016-8-3 20:18:08
有同样问题的朋友可以用以下方法,实现批量按年,月累加,好像还挺好用的 !!
用reshape包实现
y<-read.table("clipboard",header=T,sep="\t")
md<-melt(y,(id=c("year","mon","day")))
cast(md,year+mon~variable,sum)

8
文童童 学生认证  发表于 2017-5-20 11:35:14
giggle嘉禾 发表于 2016-8-3 20:18
有同样问题的朋友可以用以下方法,实现批量按年,月累加,好像还挺好用的 !!
用reshape包实现
y
你好,我想问下R里的日期默认格式是yyyy-mm-dd,所以数据集中日期变量为一个,我命名为date,是要先将date改成三个变量year,mon,day后再用你的方法吗?请问是怎么转换呢?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-29 08:41