r - 将脚本重复应用于 R 中的 n 个 .csv 文件的最佳方法是什么?

标签 r loops xts

我的情况 :

  • 我有许多 csv 文件都具有相同的后缀 pre .csv,但文件名的前两个字符不同(即 AA01.csv、AB01.csv、AC01.csv 等)
  • 我有一个 R 脚本,我想在每个文件上运行它。该文件实质上是从 .csv 中提取数据并将它们分配给向量/将它们转换为时间序列对象。 (例如,AA01 xts 时间序列对象,AB01 xts 对象)

  • 我想达到什么 :
  • 将脚本嵌入到更大的循环中(或视情况而定)以按顺序运行每个文件并应用脚本
  • 删除创建的中间对象(参见下面的代码片段)
  • 留给我从每个原始数据文件(即 AA01 到 AC01 等作为值/向量等)创建的最终 xts 对象

  • 在 R 中嵌入这个脚本的正确方法是什么?对不起,但我是一个编程菜鸟!

    我的脚本代码如下...每个 CSV 中每列的标题是 DATE、TIME、VALUE
        # Pull in Data from the FileSystem and attach it
    AA01raw<-read.csv("AA01.csv")
    attach(AA01raw)
    #format the data for timeseries work
    cdt<-as.character(Date)
    ctm<-as.character(Time)
    tfrm<-timeDate(paste(cdt,ctm),format ="%Y/%m/%d %H:%M:%S")
    val<-as.matrix(Value)
    aa01tsobj<-timeSeries(val,tfrm)
    #convert the timeSeries object to an xts Object
    aa01xtsobj<-as.xts(tsobj)
    #remove all the intermediate objects to leave the final xts object
    rm(cdt)
    rm(ctm)
    rm(aa01tsobj)
    rm(tfrm)
    gc()
    

    然后在每个 .csv 文件上重复,直到提取所有 xts 对象。

    即,我们最终会在 R 中得到什么,为进一步的应用做好准备:
    aa01xtsobj, ab01xtsobj, ac01xtsobj....etc
    

    非常感谢有关如何执行此操作的任何帮助。

    最佳答案

    请务必使用卢比 dir命令来生成文件名列表,而不是手动输入它们。

    filenames = dir(pattern="*01.csv")
    for( i in 1:length(filenames) )
    {
      ...
    

    关于r - 将脚本重复应用于 R 中的 n 个 .csv 文件的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5799096/

    相关文章:

    python - 有没有办法自动获取许多股票的一般信息,如市盈率、 yield 等?

    r - Traminer R 用于序列分析 : how to account for state order besides spell lenght?

    javascript - 为函数内的 else 语句创建循环

    R - ddply 并增加一个计数器

    C# 乘法口诀表

    php - 尝试用 php 编写一个简单的字母表程序

    r - 使用 R,如何按星期几汇总?

    r - 使用 ggplot2 绘制 xts 对象

    r - xts::apply 错误: "Error in coredata.xts(x) : currently unsupported data type"

    r - 无法从 R 中的数据框中绘制不同类型的变量