我正在使用for循环来遍历目录中的文件。然后我对每个文件中的数据进行一组处理,并写入一个包含10行的矩阵。 这是我的代码。
for(i in 1:length(testData))
{
MAE[1,i] = abs(forecastData$mean[i] - testData[i])
}
现在我希望做到以下几点:
此矩阵的行数将是目录中的文件总数(动态分配是我的意思)。我怎样才能实现这个功能?
答案 0 :(得分:1)
由于没有例子,很难给出全面的答案。但是,一般情况下,我会使用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)