我正在尝试管理R中的多个文件,但我遇到了困难。我想获取每个文件中的数据并通过一系列步骤操作它们(所有文件都接受相同的处理)。我想我会以非常愚蠢的方式谈论它。有没有办法在不使用900 apply语句的情况下管理多个文件(每个文件之前都相同)?例如,建议您何时合并所有数据框而不是单独处理每个数据框?有没有办法合并两个以上或不确定的数字,就像在这里输入文件的方式一样?或者有更好的方法来处理这么多文件?
我以标准方式获取文件:
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))
等等,这肯定不是推荐的方法。有没有更好的方法来处理大量文件?
答案 0 :(得分: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
)。您还可以查看{{1}}包的其中一个应用函数,以获得更大的灵活性。
(顺便说一句:这段代码不是没有错误,但你的例子也不是......如果你给proper example,我会更新我的)