我想知道-基于R的list.dirs
为您提供了一个字符向量,其中嵌套的文件夹结构都被扁平化为一个字符向量。是否有功能将文件夹列表返回为类list
?也就是说,如果存在./a/b/c
,则当前的list.dirs
返回
[1] "a"
[2] "a/b"
[3] "a/b/c"
但返回类似
的内容$`a`
$`a`$`b`
$`a`$`b`$`c`
[1] "a/b/c"
也许我缺少一个简单的现有解决方案?
答案 0 :(得分:0)
我不确定是否有一个简单的解决方案,但是我编写了一个功能类似的功能
ModelBuilder
基本上,recur.list <- function(x, y) {
if(length(x) == 1)
setNames(list(y), x[1])
else
setNames(list(recur.list(x[-1], y)), x[1])
}
listed_list.dirs <- function(folder_name) {
vec <- strsplit(folder_name, "/")
mapply(recur.list, vec, folder_name)
}
是一个递归函数,它基于文件夹的深度创建嵌套列表,而recur.list
将文件夹名称拆分为“ /”,并为每个文件夹创建单独的字符向量listed_list.dirs
。
folder_name
另一个例子
x <- c("a","a/b","a/b/c")
listed_list.dirs(x)
#$a
#[1] "a"
#$a
#$a$b
#[1] "a/b"
#$a
#$a$b
#$a$b$c
#[1] "a/b/c"