2016-06-16 6 views
0

Rを使用して複数の大きなデータセットを分析しています。私はいくつか一緒に追加し、プロットをするためにそれらを平均化しようとしています。対応する日付とともに追加する必要がありますが、データセットはすべて同じ長さではなく、同時に開始または終了しません。日付の違いを考慮しながら、どうやって一緒に追加するのですか?私の最初の選択肢は、ifステートメントを使用してdate = dateと言うが、比較のためにフォルダ内のすべてのファイルを呼び出す正しいプロセスが不明だ。複数の日付セットを追加し、平均値をプロットするR

私は一度に1つのデータセットをプロットするスクリプトを持っているだけで、この新しい分析を達成するために、それを修正しようとしています:

ABBR:ここ

library(openair) 
filedir <-"C:/Users/dfmcg/Documents/Thesisfiles/NE" 
myfiles <-c(list.files(path = filedir)) 
paste(filedir,myfiles,sep = '/') 
npsfiles<-c(paste(filedir,myfiles,sep = '/')) 
print(npsfiles) 
for (i in npsfiles[1:3]){ 
    x <- substr(i,54,61) 
    y<-paste(paste('C:/Users/dfmcg/Documents/Thesisfiles/NEavg',x,sep='/'), 'png', sep='') 
    png(filename = y) 
    timeozone<-import(i,date="DATE",date.format = "%m/%d/%Y %H",header=TRUE,na.strings="-999") 
    ozoneavg <- timeAverage(timeozone, pollutant = c("O3"), avg.time = "month") 
    timePlot(ozoneavg,pollutant=c("O3"), main = x) 
    dev.off() 
} 

は、データの一部であります、D03、SWS、VWS、SWD、VWD、SDWD、TMP、RH、RNF、SOL

SHEN-BM、05/01/1983 00、-999、-999、-999 ,, 999、 -999、-999、-999、-999、-999

SHEN-BM、05/01/1983 01、-999、-999、-999、-999、-999、-999、-999、-999、-999

SHEN-BM、05/01/1983 02、-999、-999、-999、-999、-999、-999、-999、-999、-999

+1

データのサンプルを少々提供することで、問題を理解し、テスト可能なソリューションを提供するのに役立ちます。 – Dave2e

+0

データが追加されました – user5727

答えて

0

あなたの質問はあまり明確ではない。正確にどのようにデータフレームを一緒に追加したいのか、そして平均するのかについてはっきりしていませんが、ここではあなたの質問に答える一般的な試みがあります。で複数のファイルを読んで、私の大きなデータフレームにそれらをマージする

#read 3 files 
basefilename<-"oa_test" 
npsfiles<-lapply(1:3, function(i) {read.csv(paste0(basefilename,i,".csv"))}) 

#merge files into one dataframe 
df<-do.call(rbind, npsfiles) 
#fix date column 
df$DATE<-as.POSIXct(df$DATE, format="%m/%d/%Y %H") 

あなたがここにオープンエアーパッケージからインポート機能を使用することができます。

あなたが1つのデータフレームにすべてのデータを持っていたら、いいえ、dplyrパッケージは、様々な変数によってグループに、それは簡単にデータを作成し、グループに記述統計を実行します。

library(dplyr) 
#group by DATE and average 
ozoneavedate<-summarize(group_by(df, DATE), mean(O3)) 
#group by ABBR and average 
ozonesumabbr<-summarize(group_by(df, ABBR), sum(O3)) 
#group by ABBR and average 
ozoneavedateabbr<-summarize(group_by(df, ABBR, DATE), mean(O3)) 

・ホープ、このことができます。 将来的にはサンプルデータをいくつか提供しており、達成することを望むものは助けを求める上で非常に役立ちます。

関連する問題