0

我正在尝试在 R 中管理多个文件,但遇到了困难。我想获取每个文件中的数据并通过一系列步骤操作它们(所有文件都接受相同的处理)。我认为我正在以一种非常愚蠢的方式去做。有没有办法在不使用 900 个应用语句的情况下管理许多文件(每个文件都相同)?例如,何时建议您合并所有数据框,而不是单独处理每个数据框?有没有办法合并两个以上或不确定的数字,就像这里输入文件的方式一样?还是有更好的方法来处理这么多文件?

我以标准方式获取文件:

chosen<-(tk_choose.files(default="", caption="Files:", multi=TRUE, filters=NULL, index=1))

但在那之后,我想对数据做几件事。到目前为止,我只是应用不同的东西,但它变得越来越混乱。看:

ytrim<-lapply(chosen, function(x) strtrim(y, width=11))
chRead<-lapply(chosen,read.table,header=TRUE)
tmp<-lapply(inputFiles, function(x) stack(fnctn))

等等,等等。这肯定不是推荐的方法。有没有更好的方法来处理大量文件?

4

1 回答 1

1

您可以编写一个包含所有操作的函数,并将其应用于您的所有文件,如下所示:

doSomethingWithFile <- function(filename) {
    ytrim <- strtrim(filename, width=11))
    chRead<- read.table(filename,header=TRUE)
    # Return some result
    chRead
}

result<-lapply(chosen, doSomethingWithFile)

您只需要考虑如何返回结果,因为 lapply 需要返回与输入长度相同的列表(chosen在本例中为 )。您还可以查看包的应用功能之一以plyr获得更大的灵活性。

(顺便说一句:这段代码并非没有错误,但你的例子也不是......如果你给出一个正确的例子,我会更新我的)

于 2012-08-21T20:00:40.593 回答