如何将 R 数据导出为 CSV 和 Excel 文件
⚡ 智能摘要
从 R 导出数据包括将数据框写入 CSV、Excel、SPSS、SAS、STATA 和 R 原生格式,然后将同一文件推送到 Google Drive or Dropbox每次导出都遵循一个模式:一个函数、一个数据框和一个目标路径。

如何从 R 导出数据
在本教程中,我们将学习如何将数据从 R 环境导出为不同的格式。
要将数据导出到硬盘,您需要文件路径和扩展名。首先,路径是存储数据的位置。在本教程中,您将了解如何将数据存储在:
- 硬盘
- Google Drive
- Dropbox
其次,R 可以将数据输出为多种格式。本教程涵盖了主要的几种文件扩展名:
- CSV
- XLSX
- RDS
- SAS
- SPSS软件
- 国家统计局
每次导出都遵循相同的格式:一个函数调用、一个数据框和一个目标路径。
导出至硬盘
首先,你可以将数据直接保存到工作目录中。以下代码打印工作目录的路径:
directory <- getwd() directory
输出:
## [1] "/Users/15_Export_to_do"
除非提供完整路径,否则每个文件都会写入该工作目录。默认路径因系统而异,通常是用户主文件夹。 macOS 以及 Linux 和“文档”文件夹 Windows但是 getwd() 始终返回当前值。要更改它,请使用 setwd(),或者直接将完整路径传递给写入函数。
setwd("/Users/USERNAME/Downloads")
创建数据框
首先,构建一个小的数据框:从 mtcars 数据集中按档位分组的 mpg 和 disp 的平均值。
library(dplyr) df <-mtcars %>% select(mpg, disp, gear) %>% group_by(gear) %>% summarize(mean_mpg = mean(mpg), mean_disp = mean(disp)) df
输出:
## # A tibble: 3 x 3 ## gear mean_mpg mean_disp ## <dbl> <dbl> <dbl> ## 1 3 16.10667 326.3000 ## 2 4 24.53333 123.0167 ## 3 5 21.38000 202.4800
该表包含三行三列。您可以使用 R 中的 write.csv 函数创建 CSV 文件。
如何在 R 中将 DataFrame 导出到 CSV 文件
R 中 write.csv 将 DataFrame 导出为 CSV 的基本语法:
write.csv(df, path) arguments -df: Dataset to save. Need to be the same name of the data frame in the environment. -path: A string. Set the destination path. Path + filename + extension i.e. "/Users/USERNAME/Downloads/mydata.csv" or the filename + extension if the folder is the same as the working directory
计费示例:
write.csv(df, "table_car.csv")
Code 说明
- write.csv(df, “table_car.csv”):在硬盘中创建一个CSV文件:
- df:环境中数据框的名称
- “table_car.csv”:将文件命名为table_car,并存储为csv
注意:write.csv2() 使用分号作为字段分隔符,逗号作为小数点,写入相同的文件,这是欧洲大陆大部分地区的惯例。
write.csv2(df, "table_car.csv")
注意:仅出于教学目的,我们创建了一个名为 open_folder() 的函数来打开目录文件夹。您只需运行以下代码,即可查看 csv 文件存储的位置。您应该会看到一个名为 table_car.csv 的文件。
# Run this code to create the function open_folder <-function(dir){ if (.Platform['OS.type'] == "windows"){ shell.exec(dir) } else { system(paste(Sys.getenv("R_BROWSER"), dir)) } } # Call the function to open the folder open_folder(directory)
如何在 R 语言中将 DataFrame 导出到 Excel 文件
导出到 Excel 非常简单 Windows 而且稍微有点棘手 macOS两者都使用 xlsx 库,区别仅在于安装方式,因为 xlsx 依赖于…… Java. Java 包裹必须先放置在机器上,包裹才能加载。
Windows 用户
On Windows或者直接使用 conda 安装库:
conda install -c r r-xlsx
库安装完成后,write.xlsx() 会在工作目录中创建一个新的 Excel 工作簿:
library(xlsx) write.xlsx(df, "table_car.xlsx")
如果您是Mac OS用户,则需要按照以下步骤操作:
- 步骤 1:安装最新版本的 Java
- 第 2 步:安装库 rJava
- 步骤3:安装库xlsx
步骤1) 你可以下载 Java 来自官方 Oracle 站点并安装它。
您可以返回 Rstudio 并检查 Java 安装。
system("java -version")
最近的 Java 发布操作成功。如果命令没有报告任何内容, Java 该软件包未安装,因此 xlsx 包将无法加载。
步骤2) 您需要在 R 中安装 rjava。我们建议您使用 Anaconda 安装 R 和 Rstudio。Anaconda 管理库之间的依赖关系。从这个意义上说,Anaconda 将处理 r 的复杂性Java 安装。
首先,你需要更新 conda,然后安装 图书馆。您可以在终端中复制并粘贴接下来的两行代码。
conda update conda conda install -c r r-rjava
接下来,在 Rstudio 中打开 rjava
library(rJava)
步骤3) 最后,是时候安装 xlsx 了。你可以再次使用 康达 去做吧:
conda install -c r r-xlsx
与 Windows 用户一样,您可以使用 write.xlsx() 函数保存数据
library(xlsx)
输出:
## Loading required package: xlsxjars
write.xlsx(df, "table_car.xlsx")
将数据从 R 导出到不同的软件
将数据导出到不同的软件就像导入数据一样简单。库“haven”提供了一种方便的方式将数据导出到
- s
- SAS
- 到过
首先,导入库。如果你没有“haven”,你可以去 开始 安装它。
library(haven)
SPSS 文件
以下是将数据导出到SPSS软件的代码:
write_sav(df, "table_car.sav")
SAS 文件
和spss一样简单,可以导出到sas
write_sas(df, "table_car.sas7bdat")
STATA 文件
最后,haven 库允许写入.dta 文件。
write_dta(df, "table_car.dta")
如何将数据导出为 R 原生格式
如果你想将对象保留在 R 内部而不是传递给其他程序,请使用以下两种原生格式之一。save() 函数会将一个或多个命名对象写入 .RData 文件:
save(df, file ='table_car.RData')
另一种方法是使用 saveRDS(),它只存储一个对象,并允许读取器在返回时选择对象的名称:
# One object, name chosen at read time saveRDS(df, file = "table_car.rds") my_data <- readRDS("table_car.rds") # Several objects, original names restored save(df, directory, file = "workspace.RData") load("workspace.RData")
| 标准 | saveRDS() / readRDS() | 保存() / 加载() |
|---|---|---|
| 每个文件的对象 | 正好一个 | 一个或多个 |
| 重新加载时的对象名称 | 你来选择 | 已恢复为已保存状态 |
| 覆盖环境 | 没有 | 是的,默默地 |
| 常规延伸 | .rds | .R数据 |
在脚本中,建议使用 saveRDS() 函数,因为 load() 函数可能会静默覆盖同名的现有对象。两种格式都能完整保留因子水平、顺序和属性,而 CSV 格式则无法做到这一点。
您可以在当前工作目录中检查上面创建的文件
与云服务交互
最后,但并非最不重要的, R 配备了出色的库来与云计算服务进行交互。本教程的最后一部分涉及从以下位置导出/导入文件:
- Google Drive
- Dropbox
注意:本教程的这一部分假设您已拥有一个帐户。 Google 和 Dropbox。如果没有,您可以快速创建一个 – Google Drive: https://accounts.google.com/SignUp?hl=en – Dropbox: https://www.dropbox.com/h
Google Drive
您需要安装 googledrive 库才能访问允许与之交互的功能 Google Drive.
该库在 Anaconda 上尚不可用。您可以在控制台中使用以下代码进行安装。
install.packages("googledrive")
然后你打开图书馆。
library(googledrive)
对于非 conda 用户来说,安装库也很简单,可以使用 `install.packages('包名')`,包名用引号括起来放在括号内。R 会将库安装到 `.libPaths()` 返回的第一个位置。
上载到 Google Drive
要上传文件到 Google 驱动时,您需要使用 drive_upload() 函数。
每次重新启动 Rstudio 时,系统都会提示您允许访问 tidyverse Google Drive.
drive_upload() 的基本语法是
drive_upload(file, path = NULL, name = NULL) arguments: - file: Full name of the file to upload (i.e., including the extension) - path: Location of the file- name: You can rename it as you wish. By default, it is the local name.
启动代码后,您需要确认几个问题
drive_upload("table_car.csv", name = "table_car")
输出:
## Local file: ## * table_car.csv ## uploaded into Drive file: ## * table_car: 1hwb57eT-9qSgDHt9CrVt5Ht7RHogQaMk ## with MIME type: ## * text/csv
您在控制台中输入 1 来确认访问
然后,您将被重定向到 Google 启用 API 访问权限。点击“允许”。
身份验证完成后,您可以退出浏览器。
在 Rstudio 的控制台中,您可以查看已完成步骤的摘要。 Google 已成功上传位于本地硬盘上的文件。 Google 为驱动器中的每个文件分配一个ID。
您可以在 Google Spreadsheet.
drive_browse("table_car")
输出:
您将被重定向到 Google Spreadsheet
进口于 Google Drive
通过文件 ID 下载是可靠的方法。如果您知道文件名,请先获取其 ID:
注意::这取决于您的互联网连接和驱动器的大小,这需要一些时间。
x <-drive_get("table_car")
as_id(x)
您将 ID 存储在变量 x 中。drive_download() 函数允许从 Google Drive.
基本语法是:
drive_download(file, path = NULL, overwrite = FALSE) arguments: - file: Name or id of the file to download -path: Location to download the file. By default, it is downloaded to the working directory and the name as in Google Drive -overwrite = FALSE: If the file already exists, don't overwrite it. If set to TRUE, the old file is erased and replaced by the new one.
您最终可以下载文件:
download_google <- drive_download(as_id(x), overwrite = TRUE)
Code 说明
- drive_download():从中下载文件的函数 Google Drive
- as_id(x): 使用ID浏览文件 Google Drive
- overwrite = TRUE:如果文件存在,则覆盖它,否则执行停止要本地查看文件的名称,可以使用:
输出:
文件存储在您的工作目录中。请记住在 R 中打开它之前添加文件扩展名。您可以使用 paste() 函数创建完整文件名(例如 table_car.csv)。
google_file <-download_google$local_path google_file path <-paste(google_file, ".csv", sep = "") google_table_car <-read.csv(path) google_table_car
输出:
## X gear mean_mpg mean_disp ## 1 1 3 16.10667 326.3000 ## 2 2 4 24.53333 123.0167 ## 3 3 5 21.38000 202.4800
最后,您可以从您的设备中删除该文件。 Google 驾驶。
## remove file
drive_find("table_car") %>%drive_rm()
输出:
删除操作由……异步处理 Google因此,该文件可能需要一段时间才会消失。
输出到 Dropbox
R 与 Dropbox 通过 rdrop2 库。Anaconda 上也没有这个库。您可以通过控制台安装它
install.packages('rdrop2')
library(rdrop2)
您授予临时访问权限 Dropbox 使用您的凭据进行身份验证。身份验证成功后,R 可以在您的目录中创建、删除、上传和下载文件。 Dropbox.
首先,您需要授予您帐户的访问权限。凭据在所有会话期间都会被缓存。
drop_auth()
您将被重定向到 Dropbox 确认身份验证。
您将看到一个确认页面。您可以关闭它并返回 R
您可以使用函数drop_create()创建一个文件夹。
- drop_create('my_first_drop'): 在第一个分支中创建一个文件夹 Dropbox
- drop_create('First_branch/my_first_drop'):在现有的 First_branch 文件夹内创建一个文件夹。
drop_create('my_first_drop')
输出:
掉落Box
要将 .csv 文件上传到您的 Dropbox,使用函数drop_upload()。
基本语法:
drop_upload(file, path = NULL, mode = "overwrite") arguments: - file: local path - path: Path on Dropbox - mode = "overwrite": By default, overwrite an existing file. If set to `add`, the upload is not completed.
drop_upload('table_car.csv', path = "my_first_drop")
输出:
下降时Box
您可以从以下位置读取 csv 文件 Dropbox 使用函数 drop_read_csv()
dropbox_table_car <-drop_read_csv("my_first_drop/table_car.csv")
dropbox_table_car
输出:
## X gear mean_mpg mean_disp ## 1 1 3 16.10667 326.3000 ## 2 2 4 24.53333 123.0167 ## 3 3 5 21.38000 202.4800
当你不再使用文件并想删除它时,你需要在 drop_delete() 函数中写入文件的路径
drop_delete('my_first_drop/table_car.csv')
输出:
也可以删除文件夹
drop_delete('my_first_drop')
输出:
从 R 导出数据:函数参考
本教程中使用的所有导出函数如下所示:
| 图书馆 | 目的 | 功能 |
|---|---|---|
| 基地 | 导出 csv | 写入.csv() |
| XLSX | 导出 Excel | 写.xlsx() |
| 避风港 | 导出 spss | 写入_sav() |
| 避风港 | 导出 sas | 写入_sas() |
| 避风港 | 导出统计数据 | 写入数据() |
| 基地 | 导出 R 对象 | save() / saveRDS() |
| 谷歌驱动器 | 上传 Google Drive | 驱动器上传() |
| 谷歌驱动器 | 在打开 Google Drive | drive_browse() |
| 谷歌驱动器 | 检索文件 ID | drive_get(as_id()) |
| 谷歌驱动器 | 下载 Google Drive | 驱动器下载() |
| 谷歌驱动器 | 移除文件 Google Drive | 驱动器_rm() |
| rdrop2 | 认证 | drop_auth() |
| rdrop2 | 建立资料夹 | drop_create() |
| rdrop2 | 上载到 Dropbox | 删除上传() |
| rdrop2 | 读取 csv Dropbox | drop_read_csv() |
| rdrop2 | 从中删除文件 Dropbox | 删除() |













