如何修改函数以递归方式工作

时间:2015-09-03 18:32:02

标签: r function

这个R函数是由其他人编写的,但我试图将其修改为递归工作。我以前从未处理过创建/修改R函数的问题,而且我有点迷失了。

该函数与list.files非常相似,只是它创建了一个数据帧而不是一个向量。数据框将包含文件完整路径列和另一列名称。以下是该功能的设置方法。

function(pathin = character, ext = '.ext'){
  if(length(grep(ext, pathin)) >= 1 ) {
    files<-data.frame(Path = pathin, 
                      Filename = gsub("(.*\\/)([^.]+)(\\.[[:alnum:]]+$)", "\\2", pathin), stringsAsFactors = FALSE)
  } else {
    files<-data.frame(Path = list.files(pathin, pattern = ext, full.names = TRUE), 
                      Filename = list.files(pathin, pattern = ext, full.names = FALSE), stringsAsFactors = FALSE)  
    files$Filename<-gsub(ext, "\\1", files$Filename)
  }
  files
}

我知道这部分内容会将list.files修改为recursive=TRUE,但这并不完全有效。任何人都有任何建议或可以指向我一些资源吗?

编辑:我忘了展示此功能在脚本中的工作原理示例。

files <- file_List(pathin = "C://Users//Public//Documents//", ext = ".ext")

0 个答案:

没有答案
相关问题