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

R语言如何用tidy方案过滤列表并提取指定类型的URL?

R tidyverse风格提取GitHub API返回的目录URL方案

错误原因

你的代码报错主要来自三个问题:

  • 变量拼写错误:你定义的变量名为reponse,后续调用时写为response,存在对象找不到的潜在问题
  • purrr::map的语法使用错误,没有正确实现按条件筛选的逻辑
  • tidyr::unnest仅支持处理tibble/数据框类型的嵌套结构,直接对列表对象调用该方法会触发报错

完整可运行的tidy风格实现

# 加载所需依赖包
library(htTR)
library(dplyr)
library(tibble)
library(tidyr)

# 发送API请求
req <- GET("https://api.github.com/repos/thedivtagguy/daily-data/git/trees/master")
# 提取tree节点的列表数据
tree_content <- content(req)$tree

# 处理逻辑:先转成tibble再展开嵌套列表,最后过滤筛选
urls_df <- tree_content %>%
  # 将列表转为两列的tibble,value列存储每条记录的嵌套列表
  enframe(value = "content") %>%
  # 将嵌套列表的键值对展开为独立列
  unnest_wider(content) %>%
  # 仅保留type为tree的记录
  filter(type == "tree") %>%
  # 按需选择保留的字段,这里保留目录路径和对应URL
  select(path, url)

# 如果只需要URL的字符向量,可加pull提取
urls <- urls_df %>% pull(url)

如果偏好purrr的行绑定写法,也可以用以下更简洁的代码:

library(purrr)
urls_df <- tree_content %>%
  map_dfr(~.x) %>%
  filter(type == "tree") %>%
  select(path, url)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 21:15:07