2012-04-05 29 views
-3

假設我們在目錄C:\ R \ Data中的一個文件夾file1.bin,file2.bin,...和file1460.bin中有文件,並且我們想要讀取它們並使循環從1到4以及取平均值,然後從4到8的平均值,直到1460.最後得到360個文件 我試圖讓他們在一個列表中,但不知道如何製作循環。如何讀取R中的多個二進制文件?

如何讀取多個文件並對它們進行manupulat?在R輸入語言
我一直在浪費了無數心愛的馬以figuer它out.any幫助

+0

下面是一個可能有用的鏈接,雖然鏈接似乎沒有專門針對* .bin文件。 http://www.ats.ucla.edu/stat/r/code/read_multiple.htm – 2012-04-05 16:18:04

+0

也許一個有用的出發點:http://stackoverflow.com/questions/6420207/manipulating-multiple-files-in-r – 2012-04-05 18:07:34

+0

另請參閱您的其他問題http://stackoverflow.com/questions/10128084/how-do-i-read-multiple-binary-files-in-in-different-folders-in-r – 2012-04-12 17:54:27

回答

0
results <- array(dim=360) 
for (i in 1:360){ 
    results <- mean(yourlist[[(i*4):(i*4+3)]]) 
} 

情況因人而異與平均值(yourList)調用,但結構將是如何,你可以通過數據循環一旦加載。

+0

感謝alot.in其實這裏是我的代碼listfile <-dir(「C:\\ PHD \\ Climate Data \\ Wind \\」) results < - array(0,dim = c(365,720,360)) for(i in 1:365){ results < - mean(listfile [[(i * 4):(i * 4 + 3)]]) writeBin(results)} – hkfidd 2012-04-06 12:09:00

+0

對不起,忽略了前面的。謝謝alot.in其實這裏是我的代碼listfile <-dir (「C:\\ PHD \\ Climate Data \\ Wind \\」)結果< - array(0,dim = c(365,720,360))for(in in 1:365){results < - mean(listfile [[我* 4 ):(我* 4 + 3)]])writeBin(結果)}但我得到這個錯誤:在listfile [[(i * 4):(i * 4 + 3)]]:嘗試選擇多個元素。我想要做的是閱讀這些365二進制文件,然後採取每四個文件的averag,然後寫入二進制文件,所以我會得到最終的40個文件。任何幫助 – hkfidd 2012-04-06 12:21:21

+0

正如@Mark所建議的,你可能會更好看看資源如:http://www.ats.ucla.edu/stat/r/code/read_multiple.htm。真的不清楚你的具體問題是什麼。如果您可以在線發佈一些文件,也許我可以修改答案。 基本的想法是,你將所有的文件加載到列表中,然後循環使用,並使用類似上面的循環的每4個的平均值。 – 2012-04-06 14:27:26