gpt4 book ai didi

r - 如何从目录树构建树状图?

转载 作者:行者123 更新时间:2023-12-02 23:50:47 25 4
gpt4 key购买 nike

给定根绝对目录路径。如何生成其下方所有路径的树状图对象,以便我可以使用 R 可视化目录树?

假设以下调用返回以下叶节点。

list.files(路径, full.names = TRUE, recursive = TRUE)

root/a/some/file.R
root/a/another/file.R
root/a/another/cool/file.R
root/b/some/data.csv
root/b/more/data.csv

我想在 R 中绘制一个图,就像 unix tree 程序的输出一样:

root
├── a
│   ├── another
│   │   ├── cool
│   │   │   └── file.R
│   │   └── file.R
│   └── some
│   └── file.R
└── b
├── more
│   └── data.csv
└── some
└── data.csv

如果解决方案涉及将文件系统树分解为两个 data.frame:

  1. 节点表(我可以在其中包含修改日期等属性)
  2. 和边表(也带有属性)

然后从这两个 data.frame 构建树状图对象。

最佳答案

值得添加的是优秀的 fs套餐优惠dir_tree函数以非常方便的方式将此功能传递给 R。

tmp_dir <- tempdir()
# Create some directories
for (i in 1:10) {
dir.create(path = file.path(tmp_dir,
basename(tempfile(pattern = "dir")),
basename(tempfile(pattern = "sub_dir"))),
recursive = TRUE)
}
# Create directory tree
fs::dir_tree(path = tmp_dir, recurse = TRUE)

结果

/tmp/RtmpEhB0ne
├── dir15213121dd5903
│ └── sub_dir1521315a5425ba
├── dir152131227b086f
│ └── sub_dir1521314255d96b
├── dir152131353e6603
│ └── sub_dir1521315b52aeed
├── dir15213136870535
│ └── sub_dir15213127b34f64
├── dir1521313bbf738b
│ └── sub_dir152131473939ea
├── dir152131403f4fd5
│ └── sub_dir152131115296e7
├── dir152131503d0d55
│ └── sub_dir15213114368572
├── dir1521316f0bb0c3
│ └── sub_dir1521314aea266b
├── dir1521317fe305e9
│ └── sub_dir152131bcfe8a
└── dir1521319800dfb
└── sub_dir15213129defd4a
<小时/>

除了打印目录树之外,发现的路径还可以返回到对象。

sink(file = tempfile(fileext = ".log"))
res_fs_tree <- fs::dir_tree(path = tmp_dir, recurse = TRUE)
sink()
res_fs_tree[[1]]
# [1] "/tmp/RtmpEhB0ne/dir15213121dd5903/sub_dir1521315a5425ba"

关于r - 如何从目录树构建树状图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36094183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com