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

如何将R三列DataFrame转为适配shinyTree的三层嵌套列表

解决方案

方案1:修改你现有的plyr逻辑

你原来的代码最内层用dlply会返回data.frame格式,只需把最内层操作替换为直接提取Activity列的字符值即可:

library(plyr)
activity.list <- dlply(activities, .(Category), dlply, .(Sub.category), function(df) {
  # 可根据需求决定是否去掉NA值
  as.character(na.omit(df$Activity))
})

方案2:tidyverse生态实现(更符合当前R代码编写习惯,无需依赖plyr)

library(tidyverse)
activity.list <- activities %>%
  # 可选操作:过滤掉Activity为空的行
  filter(!is.na(Activity)) %>%
  # 第一层按Category拆分
  split(f = .$Category) %>%
  # 第二层按Sub.category拆分,第三层直接提取Activity为字符向量
  map(
    ~ split(.x, f = .x$Sub.category) %>%
      map(~ as.character(.x$Activity))
  )

校验方法

执行str(activity.list, max.level = 3)即可查看结构,输出会显示三层嵌套结构:Category -> Sub.category -> 字符型Activity向量,完全匹配shinyTree要求的格式,可直接传入组件使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:54:05