You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用cli::tree展示数据结构无输出,请求技术支援

问题原因与解决办法

cli包的tree()函数仅支持嵌套列表作为输入,你传入的data.frame结构无法被函数解析,所以没有输出。以下是两种可行的修正方案:

方案1:将现有data.frame转为嵌套列表

先把数据框转换为tree()能识别的嵌套结构,再执行函数:

library(cli)
mtest <- data.frame(
  stringsAsFactors = FALSE,
  category = c("A","B"),
  sub_category = I(list(c("A1","A2","A3"),c("B1","B2")))
)

# 转换为嵌套列表
tree_data <- setNames(
  lapply(mtest$sub_category, function(x) list(sub_category = x)),
  mtest$category
)

# 生成树形输出
tree(tree_data, root = "rcmdcheck")

方案2:直接构造嵌套列表输入

如果从数据构造阶段就适配tree(),直接创建嵌套列表更高效:

library(cli)

# 直接定义嵌套列表结构
tree_data <- list(
  A = list(sub_category = c("A1", "A2", "A3")),
  B = list(sub_category = c("B1", "B2"))
)

tree(tree_data, root = "rcmdcheck")

额外提示

  • 若你的数据有更深层级,可通过循环或purrr包的函数(如map())批量转换为嵌套列表。
  • tree()会自动识别列表的嵌套层级,层级越深,树形缩进越明显。

内容的提问来源于stack exchange,提问作者anderwyang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 17:05:55