- 阅读权限
- 255
- 威望
- 0 级
- 论坛币
- 991 个
- 通用积分
- 224.6182
- 学术水平
- 150 点
- 热心指数
- 182 点
- 信用等级
- 87 点
- 经验
- 23610 点
- 帖子
- 673
- 精华
- 0
- 在线时间
- 912 小时
- 注册时间
- 2013-8-20
- 最后登录
- 2023-2-24
|
tianjfield 发表于 2014-5-9 14:39 
谢谢。。。。。。。。。。。 - t=read.table("00",header=T) #你的文件
- t[,1]=as.Date(t[,1]) #转化成时间格式
- a=sort(unique(t[,1])) #uniq
- r1=matrix(,nr=length(a),nc=5) #r1为第一个问题的结果,做成矩阵
- colnames(r1)=c("date","mean","max","min","median") #列名
- for(i in 1:length(a)){
- r1[i,1]=as.character(a[i])
- r1[i,2]=mean(t[,2][grep(a[i],t[,1])]);
- r1[i,3]=max(t[,2][grep(a[i],t[,1])])
- r1[i,4]=min(t[,2][grep(a[i],t[,1])])
- r1[i,5]=median(t[,2][grep(a[i],t[,1])])
- }
- write.table(r1,"r1.txt",sep="\t",quote=F,row.names=F)
- w=which(weekdays(a)=="Monday") #对uniq挑选出星期一的,然后对每个星期一之间的日期做处理,下面的操作复杂了点,大概就是这个思路
- r2=matrix(,nr=length(w)+1,nc=2) #r2为每周的结果 ,表格第一列为每个周的名,
- colnames(r2)=c("weekdays","mean")
- r2[1,1]=paste(as.character(a[1]-7),"--",as.character(a[1]-1),sep="")
- p=c()
- for(k in 1:(w[1]-1)) { p=c(p,t[,2][t[,1]==a[k]])}
- r2[1,2]= mean(p)
- r2[length(w)+1,1]=paste(as.character(a[length(w)]+1),"--",as.character(a[length(w)]+1+6),sep="")
- p=c()
- for(k in (length(w)+1):length(a)) { p=c(p,t[,2][t[,1]==a[k]])}
- r2[length(w)+1,2]=mean(p)
- for(j in 1:(length(w)-1)){
- r2[j+1,1]=paste(as.character(a[j]),"--",as.character(a[j]+6),sep="")
- p=c()
- for(k in w[j]:(w[j+1]-1)){
- p=c(p,t[,2][t[,1]==a[k]])
- }
- r2[j+1,2]= mean(p)
- }
- write.table(r2,"r2.txt",sep="\t",row.names=F,quote=F)
复制代码
|
|