如何使用GoogleSheets4的read_sheet函数同时读取多单元格范围?
GoogleSheets4 read_sheet 读取多个单元格范围的方法
可以通过read_sheet同时读取多个单元格范围,但需要注意参数的正确传递方式以及返回结果的格式:
你之前写法的问题
- 第一种用
"A2:F37" & "A41:F56":R中&是逻辑运算符,不能用来拼接范围字符串,会生成无效的逻辑值,导致参数错误。 - 第二种直接传入两个范围参数:
read_sheet没有接受多个独立范围参数的定义,额外的参数会被识别为无效参数报错。 - 第三种用
c("A2:F37", "A41:F56"):这个写法本身是有效的,但read_sheet接收多个范围时会返回列表(每个元素对应一个范围的数据框),而非合并后的单个数据框,这可能是你误以为“失败”的原因。
正确实现方式
1. 读取多个范围(返回列表)
使用list()包裹多个范围字符串,传入range参数:
DateInfo2022 <- read_sheet('https://docs.google.com/spreadsheets/......', sheet="Dates", range = list("A2:F37", "A41:F56"))
此时DateInfo2022是一个列表,DateInfo2022[[1]]对应第一个范围的数据,DateInfo2022[[2]]对应第二个范围的数据。
2. 读取后合并为单个数据框
如果需要将多个范围的数据合并成一个数据框,可以用行绑定函数:
- 用
dplyr包的bind_rows(处理列名不一致更友好):
library(dplyr) combined_data <- bind_rows(DateInfo2022)
- 或者用基础R的
do.call(rbind, ...):
combined_data <- do.call(rbind, DateInfo2022)
内容的提问来源于stack exchange,提问作者user3490557
相关产品推荐
相关产品推荐

