2012-04-05 74 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