我经常向我的同行教授 R,并且解释嵌套数据(例如嵌套列表)的结构可能是一项艰巨的任务,我发现创建视觉辅助工具可以走很长的路。
然而,诸如此类的函数的输出str()包含大量信息,并且不是最易读的格式,因此我尝试将此输出格式化,然后使用 RegEx 获得更易读的输出。我经历了一些警告,并且对字符串操作不是很熟练,我希望我能得到一些帮助。
给定以下对象:
object <- list(
a = 1:5,
b = matrix(c(1, 3, "a", "i"), byrow = TRUE),
l1 = list(
data = data.frame(
x = letters,
y = LETTERS
),
vec = "The river",
l2 = list(
abc = seq(1, 9, by = 2),
col = "#445f43"
)
),
data2 = data.frame(
x = c("a","h"),
y = runif(2, 9, 90)
),
rand = runif(12, 99, 120),
form = y~x^4
)
Run Code Online (Sandbox Code Playgroud)
预期输出将是树渲染:
object …Run Code Online (Sandbox Code Playgroud) 我正在使用 R 编程语言。
我正在尝试制作网络/树可视化,显示位于我的计算机上的所有文件夹、子文件夹和文件。
我发现以下代码可以列出我的计算机上的所有文件/文件夹:
dirs <- list.dirs(path = ".", full.names = TRUE, recursive = TRUE)
Run Code Online (Sandbox Code Playgroud)
从这里,我想制作一个网络图可视化(例如使用 igraph)来显示文件夹、子文件夹和文件的所有路径:
https://www.reddit.com/r/dataisbeautiful/comments/ajcb4n/i_made_a_graph_visualization_of_my_projects/
我在这里找到这篇文章,展示了如何在有限的设置下执行此操作:How to build a dendrogram from a Directory Tree?
但我试图直接为此声明执行此操作
dirs <- list.dirs(path = ".", full.names = TRUE, recursive = TRUE)
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我该怎么做吗?
谢谢!
我的尝试:
library(igraph)
library(data.tree)
dirs <- list.dirs(path = ".", full.names = TRUE, recursive = TRUE)
edges <- data.frame(from = dirname(dirs), to = basename(dirs), stringsAsFactors = FALSE)
g <- graph_from_data_frame(edges, directed=TRUE)
plot(g, layout=layout_as_tree)
Run Code Online (Sandbox Code Playgroud)