循环以从不同文件创建一系列图形

sbg*_*sbg 1 plot loops r histogram

我试图从一系列文件中绘制每月每天的长期(几年)平均降水量(pp)的直方图.每个文件都包含从不同位置收集的数据(并且具有不同的代码).我的每个文件都是这样的:

 X code year month day  pp  
 1 2867 1945     1   1 0.0  
 2 2867 1945     1   2 0.0   
... 
Run Code Online (Sandbox Code Playgroud)

我使用以下代码:

files <- list.files(pattern=".csv")  
par(mfrow=c(4,6))  
for (i in 1:24) {  
    obs <- read.table(files[i],sep=",", header=TRUE)  
    media.dia <- ddply(obs, .(day), summarise, daily.mean<-mean(pp))  
    codigo <- unique(obs$code)  
    hist(daily.mean, main=c("hist per day of month", codigo))  
}
Run Code Online (Sandbox Code Playgroud)

我在标题中得到了24个直方图,其中包含24个不同的代码,但不是24个不同位置的24个不同直方图,我得到相同的直方图24次(有24个不同的标题).谁能告诉我为什么?谢谢!

And*_*rie 5

我可以在您的代码中看到至少两个错误.

  1. 您的ddply陈述中有错误.
  2. 您将错误的变量传递给hist,从而根据先前的会话操作绘制可能存在或不存在的内容.

您的ddply陈述中的问题是您正在执行无效分配(使用<-).使用=以下方法修复此

media.dia<- ddply(obs, .(day),summarise, daily.mean = mean(pp))
Run Code Online (Sandbox Code Playgroud)

然后编辑你的hist声明:

hist(media.dia$daily.mean,main=c("hist per day of month",codigo))
Run Code Online (Sandbox Code Playgroud)

我怀疑问题是你没有传递正确的参数hist.您的代码实际上产生一个图的原因是因为在您的会话的某个前一步中您必须创建一个名为的变量daily.mean(正如Brandon在注释中指出的那样).