使用R从多个.csv文件打印多个图形

使用R从多个.csv文件打印多个图形,r,loops,csv,pdf,ggplot2,R,Loops,Csv,Pdf,Ggplot2,我对R很陌生,遇到了一个基于我的知识/书籍/互联网无法解决的问题 问题是: 我有60个csv文件,我想为每个文件绘制一个散点图。 它们的格式都是一样的,所以我(理论上)应该能够用一个很好的循环来解决这个任务。 这是我的密码: library(tools) library(ggplot2) files = dir('~/Klima_hist_CPL/tillnov/ClimDatK1/*.csv') for (Y in list.files(path = "~/Klima_hist_CPL/til

我对R很陌生,遇到了一个基于我的知识/书籍/互联网无法解决的问题

问题是:

我有60个csv文件,我想为每个文件绘制一个散点图。 它们的格式都是一样的,所以我(理论上)应该能够用一个很好的循环来解决这个任务。 这是我的密码:

library(tools)
library(ggplot2)
files = dir('~/Klima_hist_CPL/tillnov/ClimDatK1/*.csv')
for (Y in list.files(path = "~/Klima_hist_CPL/tillnov/ClimDatK1/",pattern =".csv", 
     all.files = FALSE, full.names = TRUE, recursive = FALSE,
     ignore.case = FALSE, include.dirs = FALSE, no.. = FALSE)){
 myData<-read.csv(Y)
 pdf("~/Klima_hist_CPL/tillnov/ClimDatK1/mypdf.pdf", width = 4, height = 4)   
 print(ggplot(data = myData, aes(ACTION_DATE, TEMP)) 
   + geom_point(aes(x = myData$ACTION_DATE, y = myData$TEMP_SET),colour=('blue')) 
   + geom_point(aes(x = myData$ACTION_DATE, y = myData$TEMP_MEASURED), colour=('red') ))
#newFilename <-paste(file_path_sans_ext(basename(Y)),".jpg")
#fp <-paste('~/Klima_hist_CPL/tillnov/ClimDatK1/',newFilename)
#writeJPEG(output,file=fp,append=FALSE)
 dev.off()
}
库(工具)
图书馆(GG2)
files=dir(“~/Klima\u hist\u CPL/tillnov/ClimDatK1/*.csv”)
对于list.files(path=“~/Klima\u hist\u CPL/tillnov/ClimDatK1/”,pattern=“.csv”,
all.files=FALSE,full.names=TRUE,recursive=FALSE,
ignore.case=FALSE,include.dirs=FALSE,no..=FALSE)){

myData我会将所有数据读入一个big data.frame中,并使用facets在
ggplot2
中绘制所有绘图。一些显示一般代码模式的伪代码:

library(dplyr)
list_of_dfs = lapply(list.files('path/to/files', pattern = '*csv'), 
    function(x) {
        dat = read.csv(x)
        dat$fname = x
        return(dat)
    })
one_big_df = list_of_dfs %>% bind_rows()
one_big_df %>% ggplot(aes(x = x, y = y)) + geom_point() + facet_wrap(~ fname)
然后可以使用
ggsave
保存绘图

ggsave('plot.png', width = 16, height = 9)

我会将所有数据读入一个big data.frame,并使用facets在
ggplot2
中绘制所有绘图。一些显示一般代码模式的伪代码:

library(dplyr)
list_of_dfs = lapply(list.files('path/to/files', pattern = '*csv'), 
    function(x) {
        dat = read.csv(x)
        dat$fname = x
        return(dat)
    })
one_big_df = list_of_dfs %>% bind_rows()
one_big_df %>% ggplot(aes(x = x, y = y)) + geom_point() + facet_wrap(~ fname)
然后可以使用
ggsave
保存绘图

ggsave('plot.png', width = 16, height = 9)

以下是对我有用的东西(只是为了帮助那些正在与类似问题作斗争的人)

底线是追加
full.names=T

对我
files以下是对我有用的东西(只是为了帮助那些与类似问题斗争的人)

底线是追加
full.names=T

对我
files非常感谢!我尝试了您的方法,但由于一些错误而受阻。但最终我成功调试了自己的代码,现在它开始工作了!如果您有具体问题,请随时提问。非常感谢!我尝试了您的方法,但由于一些错误而受阻。但最终我成功调试了自己的代码现在它已经有效了!如果您有具体问题,请随时询问更多问题。您能解释一下您的问题中的示例中出现的错误吗。现在我们必须自己做这项工作,并猜测确切的修复方法。确定:我总是收到这个错误消息:文件错误(文件“rt”):无法打开连接另外:警告消息:在文件中(文件“rt”):无法打开文件“1-2016.csv”:没有这样的文件或目录,只需添加
完整的.name=T
即可找到该文件,循环正常。啊,这是一个典型错误:),我自己也犯过几次。你能将此信息编辑到答案中吗?不是每个人都会阅读注释。你能解释一下exa中的错误吗在你的问题中。现在我们必须自己做这件事,并猜测确切的修复方法是什么。当然:我总是看到这个错误消息:文件中有错误(文件,“rt”):无法打开连接另外:警告消息:文件中有错误(文件,“rt”):无法打开文件“1-2016.csv”:没有这样的文件或目录,只需添加
full.names=T
即可找到该文件,循环正常运行。啊,这是一个典型错误:),我自己也犯过几次这样的错误。你能将此信息编辑到答案中吗?不是每个人都会阅读评论。