R语言如何将id列表传入get_data函数批量循环获取ESPN赛事数据
R 实现批量调用get_data获取赛事数据的常用方案
方案1:基础for循环实现
逻辑最直白,适合需要自定义循环内处理逻辑的场景:
# 初始化列表存储所有赛事的返回结果 result_list <- list() # 遍历所有赛事ID依次调用函数 for (id in game_ids) { # 注意game_ids存储为字符串格式,原函数入参为数值型,需做类型转换 result_list[[id]] <- get_data(as.numeric(id)) }
最终所有结果会按ID为键存储在result_list中,可直接通过
result_list[["1000001"]]提取单场数据。
方案2:apply族函数(R原生简洁写法)
不需要额外写循环结构,一行代码即可完成批量调用:
# 输出为列表格式,每个元素对应一个赛事ID的返回结果 result_list <- lapply(game_ids, function(x) get_data(as.numeric(x))) # 如果所有赛事返回的数据结构完全一致,可直接用sapply合并为矩阵/数据框 result_df <- sapply(game_ids, function(x) get_data(as.numeric(x)))
方案3:封装函数实现get_data(game_ids)直接调用
如果希望直接支持传ID列表的调用方式,可以对原函数做一层简单的向量化封装:
# 封装批量调用函数 get_data_batch <- function(ids) { # 同时兼容单个ID、多个ID输入 if (length(ids) == 1) { return(get_data(as.numeric(ids))) } return(lapply(ids, function(x) get_data(as.numeric(x)))) } # 直接传入ID列表即可调用 all_game_data <- get_data_batch(game_ids)
内容的提问来源于stack exchange,提问作者bodega18
相关产品推荐
相关产品推荐

