Я не уверен, есть ли простое решение для этого, но я написал функцию, которая делает что-то подобное
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"
Другой пример
listed_list.dirs("Users/ronakshah/Downloads/")
#$Users
#$Users$ronakshah
#$Users$ronakshah$Downloads
#[1] "Users/ronakshah/Downloads/"