将Dataframe转换为带自定义命名向量的嵌套列表
将R数据框转换为指定嵌套列表结构
你可以通过以下几种简洁的方法实现需求,把数据框转换成列名作为顶层元素、列值嵌套在values子列表中的结构:
方法1:Base R 原生实现
利用lapply遍历数据框的每一列,将每列向量包装到values列表元素中,原生方法无需额外依赖:
# 定义示例数据框 library(tibble) df <- tibble(col1 = c("a", "b", "c", "d"), col2 = c(1, 2, 3, 4)) # 转换为目标嵌套列表 result <- lapply(df, function(col) list(values = col))
输出结果与需求一致:
result #> $col1 #> $col1$values #> [1] "a" "b" "c" "d" #> #> $col2 #> $col2$values #> [1] 1 2 3 4
方法2:Tidyverse(purrr)实现
如果你习惯使用tidyverse工具链,purrr::map可以提供更简洁的语法,且自动保留原列名:
library(purrr) result <- map(df, ~list(values = .x))
验证结构
可以用str()查看最终列表的嵌套结构,确认符合要求:
str(result) #> List of 2 #> $ col1:List of 1 #> ..$ values: chr [1:4] "a" "b" "c" "d" #> $ col2:List of 1 #> ..$ values: num [1:4] 1 2 3 4
内容的提问来源于stack exchange,提问作者hvgupta
相关产品推荐
相关产品推荐

