对R中的多个文件使用相同的命令

时间:2014-08-17 07:53:10

标签: r

好的,我在当前的工作目录中有45个名为D1 D2 .............. D 45的文件。每个文件的格式为

Var 1 Var 21000's of rows in each file

我希望做的是在每个文件上执行一些函数,然后在我的全局环境中使用相同的名称,即每个文件D1D2

这些操作是,

 colnames(file) <- c("a","b")
 file <- aggregate(count~a+b,transform(x,a=pmin(a,b), b=pmax(a,b), count=1),sum)
 file <- file[file$a != file$b,]

我希望在当前工作目录中的每个文件上执行这些操作,然后在我的全局环境中获取这些文件。

我为此创建了一个函数,然后使用了apply命令,但它创建了包含所有值的巨大单个矩阵。操作后我想要单独的文件。

1 个答案:

答案 0 :(得分:0)

以下是如何在循环中执行此操作的方法。我不能测试这个,因为我没有任何样本数据,但总体结构成立。我假设你已经有了一张表,它可以作为一个表读入R,但你可能需要用不同的函数替换它,具体取决于数据的外观。

for(i in 1:45) {
  data <- read.table(paste0("inFileName", i, ".txt"), header = TRUE)
  colnames(data) <- c("a", "b")
  data <- aggregate(count~a+b,transform(x,a=pmin(a,b), b=pmax(a,b), count=1),sum)
  data <- data[data$a != data$b,]
  write.table(data, paste0("outFileName", i, ".txt"))
}