gpt4 book ai didi

r - 如何在R中输出树状人类可读的对象结构

转载 作者:行者123 更新时间:2023-12-03 15:48:11 25 4
gpt4 key购买 nike

我经常向我的同行教授 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
)
和预期的 输出 将是树渲染:
object                   
├── a 'int'
├── b 'chr'
├── l1 'list'
│ ├── data 'data.frame'
│ │ ├── x 'factor'
│ │ └── y 'factor'
│ ├── vec 'chr'
│ └── l2 'list'
│ ├── abc 'chr'
│ └── col 'chr'
├── data2 'data.frame'
│ ├── x 'factor'
│ └── y 'num'
├── rand 'num'
└── form 'formula'
我想编写一个函数来提供这个输出,并添加一些参数来返回列表元素的长度和其他信息,也许还有颜色编码的类。
编辑:
刚刚发现其他与我类似的问题 here :和 here :

最佳答案

它可以帮助:

a = Hmisc::list.tree(object, fill = " | ", attr.print = F, size = F, maxlen = 1)     


object = list 6
| a = integer 5= 1 ...
| b = character 4= array 4 X 1= 1 ...
| l1 = list 3
| | data = list 2( data.frame )
| | | x = character 26= a ...
| | | y = character 26= A ...
| | vec = character 1= T
| | l2 = list 2
| | | abc = double 5= 1 ...
| | | col = character 1= #
| data2 = list 2( data.frame )
| | x = character 2= a ...
| | y = double 2= 11.16 ...
| rand = double 12= 110.91 ...
| form = language 3( formula )

关于r - 如何在R中输出树状人类可读的对象结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62970933/

25 4 0
文章推荐: r - 将函数调用转换为 R 中的字符
文章推荐: python - 有条件地删除 Pandas Dataframe 行
文章推荐: c# - 如何将对象绑定(bind)到 Blazor 中的