将数据按照月份、季度、年份划分及求某个代码(地名、产业名等)对应的累积值
来源:互联网 发布:js防水卷材与sbs 编辑:程序博客网 时间:2024/04/29 10:35
#将数据按照月份划分
#假如数据框是data,第一列是数据,第二列是日期(格式是2014-01),第三列是地名(local),第四列是产业名(product)
ds<-sort(as.character(unique(data[,2])))#将所有的日期提取出来,形成可能出现的月份,并排序
m1<-length(ds)
data2<-list()
for(k in 1:m1){
dv<-data[data[,2]==ds[k],]#每个月的数据
data2[[k]]<-dv[order(dv[,3]),]#将每个月的数据按照地理名称(默认是汉语拼音首字母)排序
}
#这样就得到了每个月的数据,而且是按照地理名称排名的
#接下来就得到各个季度的季度值(季度值是累加的,如第二季度其实是前六个月的累计值)
#先将数据按照各个季度合在一起
#首先将月份数据转化为季度数据
m2<-m1/3#每个季度三个月
data3<-list()
for(k in 1:m2)
data3[[k]]<-rbind(data2[[3*k-2]],data2[[3*k-1]],data5[[2*k]])
#再算出各个季度的当季(三个月,比如:第二季度其实是6,7,8三个月)数据
fun1<-function(data3){
data3<-data3[order(data3[,3]),]#按照地理名称排名
dm1<-unique(data3[,3]);#地名
dv5<-c()
for(i in 1:length(dm1)){
dv2<-data3[data3[,3]==dm1[i],]
dm2<-unique(dv2[,4])#产业名
dv4<-c()
for(j in 1:length(dm2)){
dv3<-c(dm1[i],dm2[j],sum(as.numeric(dv2[dv2[,4]==dm2[j],1])))
dv4<-rbind(dv4,dv3)
}
dv5<-rbind(dv5,dv4)
}
return(dv5)#这样得到的数据格式为(“地名”,“产业名”,数据)
}
data4<-list()
for(k in 1:m2)
data4[[k]]<-fun1(data3[[k]])#得到数据的当期值
#最后计算出季度值(累积值)
data5<-rbind(data4[[1]],data4[[2]])#2季度合并
data6<-rbind(data4[[1]],data4[[2]],data4[[3]])#3季度合并
data7<-rbind(data4[[1]],data4[[2]],data4[[3]],data4[[4]])#4季度合并
data8<-fun1(data6)#2季度累积值
data9<-fun1(data6)#3季度累积值
data10<-fun1(data7)#4季度累积值
data_q<-list(data4[[1]],data8,data9,data10)#四个季度的累积值
#需要注意,其实每年的第四个季度的累积值就是年份数据,所以就不用都说了哈
for(k in 1:m2){
dm<-unique(data_q[[k]][,1])
dv2<-numeric(length(dm))
for(i in 1:length(dm)){
dv2[i]<-sum(as.numeric(data_q[[k]][data_q[[k]][,1]==dm[i],3]))#将某个地名的数据累加求和
}
data11[[k]]<-dv2
#假如数据框是data,第一列是数据,第二列是日期(格式是2014-01),第三列是地名(local),第四列是产业名(product)
ds<-sort(as.character(unique(data[,2])))#将所有的日期提取出来,形成可能出现的月份,并排序
m1<-length(ds)
data2<-list()
for(k in 1:m1){
dv<-data[data[,2]==ds[k],]#每个月的数据
data2[[k]]<-dv[order(dv[,3]),]#将每个月的数据按照地理名称(默认是汉语拼音首字母)排序
}
#这样就得到了每个月的数据,而且是按照地理名称排名的
#接下来就得到各个季度的季度值(季度值是累加的,如第二季度其实是前六个月的累计值)
#先将数据按照各个季度合在一起
#首先将月份数据转化为季度数据
m2<-m1/3#每个季度三个月
data3<-list()
for(k in 1:m2)
data3[[k]]<-rbind(data2[[3*k-2]],data2[[3*k-1]],data5[[2*k]])
#再算出各个季度的当季(三个月,比如:第二季度其实是6,7,8三个月)数据
fun1<-function(data3){
data3<-data3[order(data3[,3]),]#按照地理名称排名
dm1<-unique(data3[,3]);#地名
dv5<-c()
for(i in 1:length(dm1)){
dv2<-data3[data3[,3]==dm1[i],]
dm2<-unique(dv2[,4])#产业名
dv4<-c()
for(j in 1:length(dm2)){
dv3<-c(dm1[i],dm2[j],sum(as.numeric(dv2[dv2[,4]==dm2[j],1])))
dv4<-rbind(dv4,dv3)
}
dv5<-rbind(dv5,dv4)
}
return(dv5)#这样得到的数据格式为(“地名”,“产业名”,数据)
}
data4<-list()
for(k in 1:m2)
data4[[k]]<-fun1(data3[[k]])#得到数据的当期值
#最后计算出季度值(累积值)
data5<-rbind(data4[[1]],data4[[2]])#2季度合并
data6<-rbind(data4[[1]],data4[[2]],data4[[3]])#3季度合并
data7<-rbind(data4[[1]],data4[[2]],data4[[3]],data4[[4]])#4季度合并
data8<-fun1(data6)#2季度累积值
data9<-fun1(data6)#3季度累积值
data10<-fun1(data7)#4季度累积值
data_q<-list(data4[[1]],data8,data9,data10)#四个季度的累积值
#需要注意,其实每年的第四个季度的累积值就是年份数据,所以就不用都说了哈
#将同一地区的数据累加
#自己编写的函数
for(k in 1:m2){
dm<-unique(data_q[[k]][,1])
dv2<-numeric(length(dm))
for(i in 1:length(dm)){
dv2[i]<-sum(as.numeric(data_q[[k]][data_q[[k]][,1]==dm[i],3]))#将某个地名的数据累加求和
}
data11[[k]]<-dv2
}
#利用reshape2包
library(reshape2)#先安装该包,再library
data12<-dcast(data_q,local~product,sum);#以变量local作为行,product作为列输出数据
1 0
- 将数据按照月份、季度、年份划分及求某个代码(地名、产业名等)对应的累积值
- mysql中按照季度、月份等分组
- sql 获取当前日期的季度,年份,月份等日期部分
- 求任意年份任意月份的天数
- 通过输入的年份和月份输出对应的日历
- mysql按照天、月份、年份统计查询
- 输入数字求对应的月份(英文)
- 根据地名检索该地名的经纬度等信息
- [java]输入年份月份,显示对应月历
- 如何获取sql数据中时间的月份、年份(类型date)
- Java反射 获取某个类的属性值、字段名、注解等常用代码
- java将控制台输入的字符串按照空格划分数据存入数组
- ABAP--如何将月份转化为对应文本(代码摘抄)
- ABAP--如何将月份转化为对应文本(代码摘抄)
- 解析一个日期段之间的所有月份,年份,日期,周数等问题
- [Trick算法]给出年份和总天数求出对应月份
- 季度是如何划分的
- 输出某年某月的日历页,通过 键盘输入将年份和月份时间传递到程序中。
- iOS中的数据持久化方式
- Spring MVC 学习笔记(二) 基于spring2.5注解实现的spring MVC项目
- 软件开发之三层架构
- Haar特征个数计算
- linux驱动开发:背光设备
- 将数据按照月份、季度、年份划分及求某个代码(地名、产业名等)对应的累积值
- 复数相加小程序
- powernet 坐标结果列转为行
- native 方法找不到 ——android的armeabi和armeabi-v7a
- linux高级编程基础系列:线程间通信
- POJ 2299 Ultra-QuickSort(树状数组)
- php 验证码
- 身份实名认证返照
- 短信拦截