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

如何在R语言中将tibble数据框的每行转换为列表?

将tibble数据框的每行转换为列表的几种方法

你可以通过以下几种实用方法把tibble的每行转换成列表:

  • tidyverse推荐:使用purrr包的pmap()
    这是处理行级操作最直观的方式,直接按行构造列表:

    library(purrr)
    row_lists <- pmap(df, list)
    

    执行后row_lists是一个大列表,其中每个元素对应原数据框的一行,比如row_lists[[1]]会返回list(year = 2001, value1 = NA, value2 = 3, value3 = 4)。

  • base R实现:使用apply()函数
    不需要加载额外包,用base R的apply按行转换:

    row_lists <- apply(df, 1, as.list)
    # 若不需要自动生成的行名,可去掉名称
    row_lists <- unname(row_lists)
    

    注意:apply会把分组tibble的分组属性忽略,结果是按列排列的列表,用unname()可以去除自动添加的行索引名称。

  • 在原数据框中新增列表列:结合dplyr的rowwise()
    如果想保留原数据的同时存储每行的列表,可以用dplyr按行处理:

    library(dplyr)
    df <- df %>%
      rowwise() %>%
      mutate(row_list = list(c_across(everything()))) %>%
      ungroup()
    

    这里c_across(everything())会抓取当前行的所有列,再用list()打包成列表,最后取消行分组。之后可以通过df$row_list提取所有行的列表集合。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:41:13