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

如何将含列表的DataFrame展开为整洁DataFrame?

问题解决:展开字符串形式的列表列

你的value列并非真正的列表类型,而是存储了类似list("xxx")格式的字符串文本,这也是unnest()和unchop()操作后无变化的核心原因——这两个函数只识别R原生的列表对象,不处理字符串形式的伪列表。

解决步骤:

  • 第一步:将字符串转为真正的列表
    使用eval(parse(text = ))解析字符串中的R代码,结合purrr::map()批量处理每一行:

    data_clean <- data %>%
      mutate(value = purrr::map(value, ~ eval(parse(text = .x))))
    

    空字符串list()会被解析为原生空列表,不影响后续操作。

  • 第二步:正常展开列表
    此时value已转为原生列表列,直接用unnest()即可完成展开,keep_empty = TRUE参数可以保留原数据中空列表对应的行:

    un_nested <- data_clean %>%
      tidyr::unnest(value, keep_empty = TRUE)
    

验证结果

执行str(un_nested)可以看到,处理后的value列是字符型,每行对应原列表中的一个元素,数据已转为整洁格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 23:42:51