Skip to main content

使用 R 读取谷歌表格(简易版)

作者 Prajwal CN

如果问你一个问题——“你使用电子表格吗?”答案将是肯定的。这表明在日常商业运作中,电子表格是多么受欢迎和有用。如果你是一名分析师,那么对你来说,电子表格就是无价之宝。在工作中,你可能同时使用过 Excel 和谷歌表格。你也可能多次在 R中读取 Excel 表。但是你有没有想过用 R 读取谷歌表格?如果还没有,那么值得一试。

开始使用谷歌表格

你一定听说过谷歌表格。它就像 Excel 一样,可以让你组织、编辑和分析不同类型的数据。但与 Excel 不同的是,谷歌表格是一个基于网络的电子表格程序,它鼓励多人协作。 谷歌表格将自动与你的谷歌账户、谷歌云盘、谷歌文档和幻灯片等同步。因此使用谷歌表格时,你不需要每次都保存。它提供自动保存功能,在每一个操作后都会更新表单。是不是很厉害? 谷歌表格的界面大部分遵循 Excel,同时也做了一些合理变化。你可以自由地分享工作表来发起合作。大多数时候,使用它会让工作变得方便,因为可以多人实时编辑表格。 关于google表单的信息已经够多了,接下来让我们来做一些有趣的吧!

在R中读取谷歌表格

你可以使用 ‘googlesheets4’ 包在 R 中读取谷歌表格的数据。这个包让你可以用 R 语言进入表格。 首先,你需要在 R 中安装 ‘googlesheets4’ 包,然后必须加载库来进行下一步。

#安装所需包
install.packages('googlesheets4')
#加载所需库
library(googlesheets4)

很好。我们的 ‘googlesheets4’ 库现在已经准备好从谷歌表格中提取数据了。

1. 设置授权

你不能马上从谷歌表格中读取数据。因为它是基于网络的电子表格,将与你的谷歌邮箱相关联。所以,首先必须允许 R 访问谷歌表格。 本来你应该使用 read.csv 或 read.table 等函数来将数据读入 R。但是在这里,你不需要提到文件类型。只需要从浏览器中复制谷歌表单的链接,并将其粘贴在代码相应部分,然后运行该代码。 运行下面的代码,就可以看到进一步处理的界面:

#将谷歌表格读入 R
x <- read_sheet('https://docs.google.com/spreadsheets/d/1J9-ZpmQT_oxLZ4kfe5gRvBs7vZhEGhSCIpNS78XOQUE/edit?usp=sharing')

Is it OK to cache OAuth access credentials in the folder


1: Yes
2: No

必须选择选项1:YES,以继续进行授权程序。 接下来,如果你有多个谷歌账户,它将要求你选择一个账户继续登录,如下图所示: 账户登录

  • 必须选择你的账户来授权 R 访问表格。这个过程之后会有多个授权步骤,每个步骤都要点击“允许(allow)”。 授权

  • 在下图中,你会看到授予给 Tidyverse API 的权限。点击 “允许”,就完成了。 API 授权

  • 授权成功后,你会看到提示已完成的信息。 授权成功

  • 之后,你也会看到 R studio 显示授权成功信息。 R studio 信息

2. 将数据读入 R

很好,你已经成功完成授权过程。现在让我们看看如何将数据从谷歌表格中读入 R。

#将数据读入 R
df <- read_sheet('https://docs.google.com/spreadsheets/d/1J9-ZpmQT_oxLZ4kfe5gRvBs7vZhEGhSCIpNS78XOQUE/edit?usp=sharing')

#打印数据
Df
# 一个 1,000 x 20 的表格
months_loan_dura~ credit_history purpose amount savings_balance employment_leng~
<chr> <dbl> <chr> <chr> <dbl> <chr>
1 < 0 DM 6 critic~ radio~ 1169 unknown
2 1 - 200 DM 48 repaid radio~ 5951 < 100 DM
3 unknown 12 critic~ educa~ 2096 < 100 DM
4 < 0 DM 42 repaid furni~ 7882 < 100 DM
5 < 0 DM 24 delayed car (~ 4870 < 100 DM
6 unknown 36 repaid educa~ 9055 unknown
7 unknown 24 repaid furni~ 2835 501 - 1000 DM
8 1 - 200 DM 36 repaid car (~ 6948 < 100 DM
9 unknown 12 repaid radio~ 3059 > 1000 DM
10 1 - 200 DM 30 critic~ car (~ 5234 < 100 DM
# ... 还有990行,14个变量:installment_rate <chr>,
# personal_status <dbl>, other_debtors <chr>, residence_history <chr>,
# property <dbl>, age <chr>, installment_plan <dbl>, housing <chr>,
# existing_credits <chr>, default <dbl>, dependents <dbl>, telephone <dbl>,
# foreign_worker <chr>, job <chr>

这里你可以看到 R 如何使用 read_sheet 函数从谷歌表格中读取数据。 我还在这里添加了数据框架供你参考/理解。 贷款数据

  • 账户设置好之后,一切将变得非常简单。

3. 使用表格的 ID 将谷歌表单读入 R

不需要复制表格的链接来读取数据。你可以只复制表格的 ID,还可以用 read_sheet 函数来使用该 ID,这样也能读取数据。 如果你不知道怎么找工作表的 ID,下面我添加了一个表格的链接,并且突出显示了它的 ID。你可以复制这个ID,然后按照同样的过程操作。 https://docs.google.com/spreadsheets/d/**1J9-ZpmQT\_oxLZ4kfe5gRvBs7vZhEGhSCIpNS78XOQUE**/edit#gid=0 下面是要用的代码:

#用表格 ID 将数据读入 R
df <- read_sheet('1J9-ZpmQT_oxLZ4kfe5gRvBs7vZhEGhSCIpNS78XOQUE')

#Prints the data
Df

这段代码将给出相同的输出,也就是说会得出同样的数据。我在插图中使用的是信贷数据。你可以使用任何数据来进行操作。希望从现在开始,将谷歌表单读入 R 中对你来说不成问题。

结语

几乎所有的机构都使用谷歌表格进行业务操作和数据工作。作为一个分析师或 R 用户,如果你恰好知道如何使用谷歌表格和 R,那就太好了。以上介绍的方法非常简单,可以用你的数据和表格ID/链接进行练习。希望你能学到一些节省工作时间的方法。就到这里吧,祝你使用 R 愉快!