【问题标题】:Split Folders and sub folder to Data Frame in R将文件夹和子文件夹拆分为R中的数据框
【发布时间】:2020-07-07 17:49:54
【问题描述】:

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

分割路径
F1<-strsplit(DF$FolderPath,"\\\\")

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

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

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

【问题讨论】:

  • 一些示例数据在这里会有所帮助...

标签: r


【解决方案1】:

您可以将每个列表元素的length 设置为最大值,而不是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" 

【讨论】:

  • 是的,这可行,但速度很慢。对于 500,000 行,strsplit 在一秒钟内发挥了它的魔力。添加此操作需要很长时间。有更快的解决方案吗?
  • @MuratErenturk 也许更新版本更快。
  • 是的,好多了。非常感谢。
猜你喜欢
  • 2014-08-14
  • 2017-05-20
  • 2021-12-08
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 2015-04-20
  • 2013-07-14
  • 1970-01-01
相关资源
最近更新 更多