我有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
请注意,我不是在寻找编写自定义函数。只是找不到语法。
您可以将每个列表元素的长度
设置为最大值,并且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"