R语言如何将dataframe转换为指定结构的list列表
R 数据框转指定结构列表的实现方法
基础R实现(无需额外安装包)
直接使用基础自带的lapply函数即可完成转换,代码如下:
# 构造示例数据框 a<-data.frame(country = rep(c("Africa", "Asia","Europe"), length.out=9), Year = rep(1987:1989, each=3), GDP = (1:9), GNP=(11:19), PPP=(21:29)) # 确定需要拆分的指标列名 target_cols <- c("GDP", "GNP", "PPP") # 遍历生成目标列表 result <- lapply(target_cols, function(col) { a[, c("country", "Year", col)] })
执行后输出的result就是你要求的结构。如果需要给列表的每个元素命名方便后续调用,可以补充一行代码:
names(result) <- target_cols
命名后可直接通过result$GDP的方式调取对应子数据框。
tidyverse生态实现(适配dplyr/purrr使用习惯)
如果你日常使用tidyverse系列工具,也可以用map函数实现相同逻辑:
library(purrr) library(dplyr) target_cols <- c("GDP", "GNP", "PPP") result <- map(target_cols, ~select(a, country, Year, all_of(.x)))
内容的提问来源于stack exchange,提问作者Jeongho Choi
相关产品推荐
相关产品推荐

