【问题标题】:How to automize loading file in a R script?如何在 R 脚本中自动加载文件?
【发布时间】:2017-05-26 03:35:46
【问题描述】:

我正在尝试使我的 R 工作程序的某些段落自动化。我想知道是否有一种方法可以使R可以自动加载文件夹中包含的多个文件并进行一些操作。

想象一下,在一个文件夹中我有 10 个名为:

Mark_L2.txt
Mark_L5.txt
Michael_L2.txt
Michael_L5.txt

有没有办法让 R 一个一个地加载所有带有L2.txt 扩展名的文件,并做一些我想要添加的操作,然后像绘图一样?

ggplot(data=data1, aes(x=variable, y=mean)) +geom_bar(aes(fill = ID),position = 'fill',stat="identity")

一件一件需要很长时间.. 有什么建议吗?

【问题讨论】:

    标签: r


    【解决方案1】:

    可能是这样的:

     files <- list.files("YOUR_FOLDER",pattern = 'L2.txt')
     pdf('YOURPDF.pdf')
        for(i in files){
        file <-read.table(paste0("YOUR_FOLDER/",i))
    
        ##INSERT OPERATIONS HERE
        my.plot <- ggplot(file) #include other specifications for plot
        print(my.plot)
    
    
        }
    
    dev.off()
    

    ?

    【讨论】:

    • 好的,是的,它可以工作,但并不完美,因为这样我只获得了最后一个文件的 1 个图,并且没有与我的文件夹中有多少文件一样多的不同图。我的意思是 for (i in files) { file
    • 如果我正确理解你想要什么,最好的办法是在 for 循环之前打开一个 pdf:pdf('PDFNAME.pdf')。然后运行循环并在 for 循环内为给定文件 my.plot &lt;- ggplot(i) 构建一个绘图。然后在 for 循环中打印绘图:print(my.plot)。在 for 循环之后,运行 dev.off() 它应该将所有这些图放入 pdf 中。
    • 谢谢巴尔特!!这种方式很有帮助
    【解决方案2】:

    您可以使用列出目录中文件的list.files() 方法。它将正则表达式模式作为参数,该模式会过滤掉您指定的内容。例如list.files(path = ".", pattern = L2\\.txt)

    【讨论】:

      猜你喜欢
      • 2018-08-05
      • 2020-08-20
      • 1970-01-01
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多