2016-09-22 99 views
0

所以我回来了更加冒险的方法为我的成千上万的.CSV文件操作R.我可以导入,合并每10个文件,重命名columb标题,保存新.CSV等,但结果仍然太麻烦,操纵分析。R 1000+ .CSV文件合并和频率分析

我需要的是;每10个文件放入一个矩阵或合并成一个文件(参见下面的文件示例)。这些列是频率,频道A(和后来的频道B)。只要˚F一个˚F值是每个文件(因此我在想matrix)相同。最后,我将结束与头

| *F* | *A1* | *B1* | *A2* | *B2* | *A3* | *B3* | 

等等〜10

里面的matrix/bind_col循环的,是有可能前wrie.csv做就值一些数学函数A1-10一些新的列平均为每个频率。我也需要别人,但我会自己排序。

+------------+-------------+ 
    | Frequency | Channel A | 
    | (MHz) | (dBV) | 
    +------------+-------------+ 
     0.00000000,-27.85117000 
     0.00007629,-28.93283000 
     0.00015259,-32.89576000 
     0.00022888,-43.54568000 
    --- 
    Continued... 
    --- 
     19.99977312,-60.59710000 
     19.99984941,-48.58142000 
     19.99992571,-43.29094000 

感谢您的时间,我知道我花了太多的调试,现在我正在寻找更优雅的方法。 PS:我的格式怎么样?表和.CSV风格的错误!

+0

我忘记了在读取文件之后命名'write.csv'文件。例如:* filename〜testJ〜1 * to * ...〜testJ〜10 *。 'write.csv'文件名=文件名〜testJ.csv。多么尴尬! –

+2

请勿使用评论来修改您的问题。使用'[edit]'链接。这就是它的目的,使用它会提高质量。你说“你回来了”。这是否意味着在你期待答案的其他一些无关联的问题中有更多的背景?你说你有你已经调试过的代码,但是你没有提供代码。 –

+0

谢谢@ 42-。我以后只能通过移动设备发表评论,编辑无法正常工作。作为一名新用户,我回来了更多,发现线程和答案最后一次非常有帮助。我没有插入代码,想要以更好的结构为例来重新开始。要遵循的代码。 –

回答

0

没有一个更好的例子来说明每个文件的外观,你希望输出什么,以及一些示例代码。

文件是否足够小,以至于您可以一次加载全部1000个文件?

像下面这样的东西就是我开始的地方,如果是我的话。

library(data.table) 

filenames <- list.files(pattern = ".csv$") 

list_data <- vector(mode = "list", length = length(filenames)) 

i <- 1 
for (file in filenames){ 
    list_data[[i]] <- fread(file) 
    i <- i + 1 
} 

dat <- rbindlist(list_data, use.names = TRUE, fill = TRUE) 

之后,您可以使用所有有用的data.table功能。

dat[, .(meanA = mean(A), stdevA = sd(A)), by = Frequency] 
+0

一个'lapply'可以简化for循环,并且可以和'mclapply'同时完成,但是我认为这会更清楚它到底在做什么。 –