[R] 数据整理代码

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之后出现的元组有重复的,不知道问题出现在哪?

posted @ 2013-12-06 21:47  海阔天空男儿当自强  阅读(271)  评论(0编辑  收藏  举报