使用R创建循环函数以进行计算并保存结果

时间:2014-09-11 18:01:45

标签: r

我有20个文件中的20个站点(像Bariko.txt这样的txt格式)。我想在同一个目录中使用(20)个不同的站名(如bariko_result.txt)将结果保存到另一个文件中(在20个单独的文件中),同时在一个脚本中使用循环进行计算。 这是一个例子:

     library(dplyr)
     data=read.csv("~/Task/New_Job/Stations_data/Bariko.txt",header=T,sep="\t")
     data_filtered = filter(data, Month == 2 | Month == 3)
     write.table(data_filtered, file = "bariko_result.txt", quote =FALSE, 
     row.names=FALSE, col.names = TRUE)


        station build   Year Month  
    1   Bariko 24.5  1961     1      
    2   Bariko 29.1  1962     1       
    3   Bariko 26.4  1963     1       
    4   Bariko 29.0  1961     2       
    5   Bariko 22.0  1962     2      
    6   Bariko 25.9  1963     2       
    7   Bariko 24.2  1961     3       
    8   Bariko 23.9  1962     3       
    9   Bariko 24.4  1963     3       
    10  Bariko 24.0  1961     4      
    11  Bariko 24.2  1962     4      
    12  Bariko 24.8  1963     4    

我可以为一个站做到但是20这需要花费太多时间。 谢谢。

1 个答案:

答案 0 :(得分:1)

这应该这样做。

Input <- paste0(formatC(1:20, width = 2, flag = "0"),".txt")
Output <- paste0(formatC(1:20, width = 2, flag = "0"), "_result.txt")

data <- list()
data_filtered <- list()

for (i in 1:length(Input)){
      data[[i]] <- read.csv(Input[i], header = T, header=T,sep="\t")
      data_filtered[[i]] <- filter(data[[i]], Month == 2 | Month == 3)
      write.table(data_filtered[[i]], file = Output[i], quote =FALSE, 
                  row.names=FALSE, col.names = TRUE)
}