在R语言中如何循环遍历嵌套列表元素并合并结果为单一数据框?
解决方法
首先修正你原有代码的拼写错误:library(htTR)大小写有误,需要改为library(httr)才能正常加载包。
你要的动态取值合并效果,可以用列表的[[字符索引]]语法替代固定的$取值,以下是两种实现方式:
方式1:和你原有逻辑对齐的循环写法
# 需要先加载dplyr包使用bind_rows library(dplyr) # 初始化结果数据框 aux_final <- data.frame() # 遍历所有币种名称 for (symbol in lista) { # 用[[symbol]]动态获取对应币种的接口返回内容 tmp <- fromJSON(rawToChar(prueba[[symbol]]$content)) tmp <- data.frame(tmp) # 逐行合并到结果表 aux_final <- bind_rows(aux_final, tmp) }
方式2:更简洁的向量化写法(无需显式写循环)
# 加载purrr的map_dfr可以直接批量处理后合并为数据框 library(purrr) library(dplyr) aux_final <- map_dfr(lista, function(symbol) { fromJSON(rawToChar(prueba[[symbol]]$content)) })
核心说明
R的列表支持两种取值方式:
- 固定取值:
prueba$ETHBTC,只能写死元素名 - 动态取值:
prueba[[symbol]],symbol是存储元素名的变量,完全适配循环中传入不同币种名的需求
内容的提问来源于stack exchange,提问作者Sergio Parra
相关产品推荐
相关产品推荐

