zoukankan      html  css  js  c++  java
  • [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之后出现的元组有重复的,不知道问题出现在哪?

  • 相关阅读:
    python---模块与包
    python---迭代器与生成器
    python---装饰器
    Python---函数
    Python---文件操作
    Python---数据类型
    浅谈UBUNTU
    java 键盘输入多种方法
    动态规划解最长公共子序列问题
    线段树
  • 原文地址:https://www.cnblogs.com/chenhuanfa/p/3462164.html
Copyright © 2011-2022 走看看