繁体   English   中英

从多个文件作为两列矩阵的操作中获得结果

[英]Obtaining results from operations on multiple files as a two-column matrix

我正在使用for循环遍历目录中的文件。 然后,我对每个文件中的数据进行一组处理,并编写一个包含10行的矩阵。 这是我的代码。

for(i in 1:length(testData))
      {
        MAE[1,i] = abs(forecastData$mean[i] - testData[i])
      }

现在,我希望执行以下操作:

  • 在此矩阵中添加行
  • 在单独的两列矩阵中将其作为值写入,文件名是第一列,而值是第二列
  • 按值排序(不是文件名)
  • 全局访问它(即在遍历目录的for循环之外)。

此矩阵的行数将是目录中文件的总数(动态分配是我的意思)。 如何实现此功能?

由于没有示例,因此很难给出全面的答案。 但是,总的来说,我将使用list.files()获得所有相关文件的向量,然后编写一个函数来执行您需要对每个文件进行的数学运算。 这样的功能可能看起来像这样。

func.file_math <- function(file.name) {

    <insert file operations>
    return(list(file.name=file.name,
                number=number))
}

使用sapply()然后你可以在你的所有内容运行此file.list() 完成后,您只需使用do.call()rbind.data.frame即可获得结果的数据帧。

yourfiles <- list.files("/some/path/")
file_math <- sapply(X=yourfiles,
                    FUN=func.file_math,
                    simplify=FALSE,
                    USE.NAMES=TRUE)
file_math.df <- do.call(what=rbind.data.frame,
                        args=file_math)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM