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

R无需下载读取Google Drive多CSV合并为数据帧的map_df报错求助

解决方案

你遇到的报错核心原因是map_df()调用时未传入需要迭代的输入对象,仅定义了处理逻辑,不符合purrr系列函数的参数要求。

修正后完整代码

首先确保你已经完成googledrive包的授权:

library(tidyverse)
library(googledrive)

# 首次使用会自动唤起浏览器授权,选择有权限读取目标文件夹的谷歌账号即可
drive_auth()

你之前获取CSV列表的代码无需修改:

folder_url <- "https://drive.google.com/folder/directory" #替换为你的文件夹实际链接
folder <- drive_get(as_id(folder_url))
csv_files <- drive_ls(folder, type = "csv")

合并数据的代码调整为以下写法即可:

create.df <- csv_files$id %>%
  map_df(~ drive_read_csv(
    file = as_id(.x),
    col_types = cols(.default = "c")
  ))

代码说明

  • map_df()的第一个参数传入需要迭代的CSV文件ID向量csv_files$id,每次循环会将单个ID赋值给.x
  • 直接调用googledrive包内置的drive_read_csv()函数,无需手动拼接下载链接,函数会自动将文件内容读取到内存中,仅会在R的临时会话目录生成自动清理的临时文件,不会主动下载到你的用户自定义目录,符合你不落地存储文件的需求
  • 该写法会自动同步协作者最新修改的文件内容,每次运行都会拉取谷歌云端的最新版本

可选优化(大文件量场景)

如果需要处理的CSV数量较多,可以添加进度条直观查看处理进度:

create.df <- csv_files$id %>%
  map_df(
    .f = ~ drive_read_csv(
      file = as_id(.x),
      col_types = cols(.default = "c")
    ),
    .progress = "正在合并CSV文件"
  )

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 17:18:01