提问者:小点点

将文件夹和子文件夹拆分为R中的数据框


我有FolderPaths列表(作为Data. Frame列),我需要拆分并将1,2级文件夹名称添加到我的Data.Frame。我可以使用拆分路径

F1<-strsplit(DF$FolderPath,"\\\\")

这给了我一个元素数量不均匀的列表。(文件夹树有不同的深度)所以使用矩阵(unlist(F1))不会像其他类似问题的答案所示的那样工作。我需要选择列表中的每个元素1和2并将其添加到我的data. frame中,类似于:

DF$FolderLevel1<-magicfunction using F1
DF$FolderLevel2<-magicfunction using F2

请注意,我不是在寻找编写自定义函数。只是找不到语法。


共1个答案

匿名用户

您可以将每个列表元素的长度设置为最大值,并且rbind

F1 <- strsplit(c("a", "a\\b", "a\\b\\c"),"\\\\")
do.call(rbind, lapply(F1, "[", 1:max(lengths(F1))))
#     [,1] [,2] [,3]
#[1,] "a"  NA   NA  
#[2,] "a"  "b"  NA  
#[3,] "a"  "b"  "c"