library("taRifx") dir="E:\" pd=list.files(dir) fceu=pd[which(grepl("13m",pd) | grepl("13M",pd))] ## final.df fileNum=length(fceu) firstResult=TRUE for(i in 1:fileNum) { pceu<-paste(dir,fceu[i],sep="\"); tmp.df=read.table(pceu,skip=8) tmp.time=tmp.df[,1:4] tmp.uni.time=tmp.time[!duplicated(tmp.time),] tmp.fac=factor(tmp.df[,4]) tmp.meanPR=as.vector(tapply(tmp.df[,7],tmp.fac,mean)) tmp.meanTD=as.vector(tapply(tmp.df[,8],tmp.fac,mean)) tmp.meanHR=as.vector(tapply(tmp.df[,9],tmp.fac,mean)) tmp.result=data.frame(tmp.uni.time,tmp.meanPR,tmp.meanTD,tmp.meanHR) sort.data.frame(tmp.result,formula=~V4) if(firstResult==TRUE) { final.df=tmp.result firstResult=FALSE } else final.df=rbind(final.df,tmp.result) } write.table(final.df, file="bjfs.txt")
这段代码的目的:将时间粒度为30s的数据整理成小时平均值
原始文件是上千个文本文件,采用字符串匹配函数进行搜寻目标处理文件,然后用for循环一个个处理,合并到一个data frame
再写入到文件中
sort.data.frame函数很给力,可以对data.frame按一定的条件进行排序。
另外今天还用了一个merge函数,连接两个data frame
类似于数据库的连接操作,同样支持左连接,右连接,全连接
但是貌似出现点小问题:merge之后出现的元组有重复的,不知道问题出现在哪?