在这篇对R 数据导入教程(第一部分) 的后续教程中,DataCamp 继续以全面且易上手的方式,带您快速将数据导入 R,从简单的纯文本文件到更高级的 SPSS 与 SAS 文件。
正如许多读者从第一篇文章中敏锐指出的,一些用于将数据导入 R 的优秀包尚未得到关注,文章也未明确区分处理标准数据集与超大数据集的不同。为此,今天的文章将重点弥补这些内容。
继续阅读,发现更多将特定文件导入 R 的方法。如果您还有其他问题或发现需要更正的错误,欢迎联系我们 。
(试试这门互动课程:Importing Data in R (Part 1) ,在 R 中处理 CSV 和 Excel 文件。)
从常见来源将数据导入 R
首先,本文将更深入地介绍如何将常见来源(通常是类似电子表格的数据)导入 R。与上一篇一样,重点是读取非 Excel 或其他类型的文件进入 R。
接着,将讨论来自统计软件、数据库、网页抓取等来源的数据。
如果您想了解在导入数据前可能需要执行的准备步骤,请前往我们的第一篇文章 ,其中解释了如何在将数据导入 R 前准备数据和工作区。
使用 scan() 将纯文本文件读入 R
除了在R 数据导入教程的第一部分 中提到的 read.table() 外,scan() 函数同样适用于处理以简单分隔文本文件存储的数据。与 read.table() 不同,scan() 返回的是列表或向量,而不是数据框 。
假设您有如下 .txt 文档:
24 1991
21 1993
53 1962
技术支持
您可以使用以下命令读入数据(可在这里 下载):
data <- scan("birth.txt")
技术支持
注意 ,您的文件也可以是在线数据集。在这种情况下,只需将 URL 作为 scan() 的第一个参数传入即可。
或者,您也可以将数据读入矩阵:
data <- matrix(scan("birth.txt"),
nrow=2,
byrow=TRUE)
技术支持
提示: 如果您想更严谨地处理,可能需要指定更多参数以得到所需的矩阵形式。关于 matrix() 函数的更多信息,请参阅此页面 。
您也可以将输入文件的各列分别读入不同的向量:
data <- scan("age.txt",
what = list(Age = 0,
Birthyear= 0),
skip=1,
quiet=TRUE)
技术支持
注意 ,首先传入带扩展名的文件(路径)作为参数(取决于您是否将工作目录设置为包含数据集的文件夹),然后再指定要读取的数据类型、是否跳过数据集的第一行、字段分隔符字符,以及是否打印读取了多少项的提示信息。
如果数据中包含其他数据类型,您应对 scan() 进行适当调整,如下例所示:
data <- scan("age.csv",
what = list(Age = 0,
Name= "",
Birthyear= 0),
skip=1,
sep=";",
quiet=TRUE)
技术支持
提示: 您也可以自己动手试试!可在这里 下载上述使用的文本文件。
随后,您也可以将数据读入数据框:
data <- data.frame(scan("age.csv",
what = list(Age = 0,
Name = "",
Birthyear= 0),
skip=1,
sep=";",
quiet=TRUE)
技术支持
提示: scan() 的许多参数与 read.table() 相同。因此,查阅文档总是有用的!如需了解 scan() 参数,请点击这里 。
请记住 ,您可以分别通过以下命令获取与设置工作目录:
getwd()
setwd("<path to your folder>")
技术支持
使用 read.fwf() 将定宽列数据导入 R
要将“定宽格式数据表”读入 R 的数据框,您可以使用 read.fwf() (来自 utils 包)。
当您的数据文件包含带空格的列,或相邻列之间没有空格分隔时,可使用此函数。
Phys / 00 / 1: M abadda
Math / 00 / 2: F bcdccb
Lang / 00 / 3: F abcdab
Chem / 00 / 4: M cdabaa
技术支持
在这里,例如您知道学科名称总是位于每行的前 7 个字符,性别值总是在第 22 个字符,成绩从第 25 到第 30 个字符。
如果您想试着将这些数据载入 R,可在这里 下载文本文件。
要将上述数据正确导入 R,您需要执行以下命令:
read.fwf("scores.txt",
widths= c(7,-14,1,-2,1,1,1,1,1,1),
col.names=c("subject","sex","s1","s2","s3","s4","s5","s6"),
strip.white=TRUE)
技术支持
注意 ,widths 参数给出定宽字段的宽度。本例中,文件的前 7 个字符保留给课程名称;然后,您不想读取接下来的 14 个字符,于是传入 -14。接着,性别占 1 个字符,但不需要随后的两个字符,因此传入 -2。之后所有字符需分别读入各列,因此以 1,1,1,1,1,1 进行切分。当然,这些值会根据您要导入的列而变化。
read.fwf() 还可以接受若干额外参数。点击这里 了解更多。
注意 ,如果您想使用 Fortran 风格的格式说明来读入文件,可以使用 read.fortran() 函数:
data <- tempfile()
cat(file = data, "345678", "654321", sep = "\n")
read.fortran(data, c("F2.1","F2.0","I2"))
技术支持
如上方小例所示,您将 Fortran 风格的格式说明作为 read.fortran() 的第二个参数。可传入的参数样式包括:“rFl.d”、“rDl.d”、“rXl”、“rAl”或“rIl”,其中“l”为列宽,“d”为小数位数,“r”为重复次数。本例通过 c() 传入 2.1、2.0 和 2,表示有三列、两行。第一列为一位小数,第二、三列为无小数位的数值。
至于列中值的类型,您可以有:
“F”和“D”表示数值格式;
“A”表示字符值;
“I”表示整数值;
“X”表示可跳过的列。
本例中,第一、二列为数值格式,第三列为整数值。
注意 ,重复码“r”和小数位码“d”始终可选。长度码“l”是必需的,除非在 “X” 格式且存在“r”时。
将(Google)电子表格导入 R
正如您可能在我们关于在 R 中读取与导入 Excel 文件 的教程或第一篇R 数据导入教程 中已读到的,电子表格可以通过多种方式导入 R。本节将进一步展开,涵盖 Google 表格与 DIF 文件!
继续往下,了解如何将电子表格导入 R。
将 Excel 电子表格导入 R
除了 xlsx 包,您还有多种选项可将电子表格读入 R:
1. 从剪贴板将 Excel 电子表格读入 R
如果您打开了电子表格,实际上可以将内容复制到剪贴板并快速导入 R。为此,您可以使用 readClipboard() 或 read.table() :
readClipboard() #Only on Windows
read.table(file="clipboard")`
技术支持
如您亲自尝试会发现,第一种方法对向量数据较合适,但对于剪贴板中的表格数据会较复杂。若想进一步了解 read.table(),请务必参阅 R 数据导入教程的第一部分 或我们关于在 R 中读取与导入 Excel 文件 的教程。
2. 通过 RODBC 包将 Excel 电子表格导入 R
第二种方法是通过 RODBC 包:
library(RODBC)
connection <- odbcConnect("<DSN>")
技术支持
注意 ,传给 odbcConnect() 的参数实际上是 DSN。关于如何配置 DSN、建立连接等的完整指南,请参阅此页面 ,内容详尽且易上手!
query <- "<SQL Query>"
data <- sqlQuery(connection,
query)
str(data)
技术支持
强烈推荐: 前往此页面 获取详尽且易上手的教程!
在 R 会话结束时,别忘了关闭连接:
odbcCloseAll()
技术支持
提示: 如果您想进一步了解将电子表格或 Excel 文件导入 R,请务必查看我们的导入数据到 R 第一篇教程,或阅读我们关于在 R 中读取与导入 Excel 文件 的教程,其中也介绍了 readxl 与 XLConnect 等包。
将 Google 表格导入 R
googlesheets 包及其 gs_read() 函数可将 Google 表格读入 R。
先执行以下代码:
gs_ls()
技术支持
让浏览器启动并完成认证。随后,如果您想读取或编辑数据,需要先注册该表格。您可按标题或 key 指定表格:
data <- gs_title("<your spreadsheet>")
data <- gs_key()
技术支持
接下来读取数据:
gs_read(data)
技术支持
以上只是 googlesheets 包的简要概览。务必阅读这里 的详细说明,并查看此页 。
将 DIF(数据交换格式)文件读入 R
使用 read.DIF() 将 DIF 文件导入 R:
data <- read.DIF("<your spreadsheet>",
header=FALSE,
as.is = !stringsAsFactors)
技术支持
注意 ,您可指定电子表格是否包含表头,以及是否“按原样”导入数据,即字符变量是否转换为因子。本例中不希望转换为因子,因此使用 !stringsAsFactors。
关于该函数及其参数的更多信息,请访问此页面 。
将 Excel 文件导入 R
除了电子表格,您或许也希望将实际的 Excel 文件导入 R。继续阅读了解具体方法!
注意 ,本文仅在我们在 R 中读取与导入 Excel 文件 教程以及第一篇R 数据导入教程 的基础上进一步展开!
使用 readxl 将 Excel 文件导入 R
尽管该包仍在积极开发中, 但非常值得一试,因为它能非常轻松地读取 Excel 文件:
library(readxl)
read_excel("<path to file")
技术支持
请记住 ,如果文件夹在您的工作目录中,只需输入文件名及其扩展名即可。使用以下代码获取与设置工作目录:
getwd()
setwd("<Path to your folder>")
技术支持
注意 ,您可以分别通过 sheet、col_names、col_types、na 与 skip 参数指定要读取的工作表、列名与类型、缺失值以及读取数据前要跳过的行数。详见这里 。
使用 openxlsx 将 Excel 文件读入 R
openxlsx 包也提供了简单的方法将 .xlsx Excel 文件读入 R:
library(openxlsx)
read.xlsx("<path to your file>")
技术支持
如需了解该包或 read.xlsx() 可传入的参数,点击这里 。
提示: 若想进一步了解将 Excel 文件导入 R,请查看我们的“将数据导入 R” 首篇教程,或阅读我们更为详尽的在 R 中读取与导入 Excel 文件 的教程,其中也介绍了 XLConnect 等包。
将 OpenDocument 电子表格导入 R
使用 read.ods() (来自 readODS 包)将 OpenDocument 电子表格读入 R 并转为数据框:
library(readODS)
read.ods("<path to your file>",
sheet = 1,
formulaAsFormula = FALSE)
技术支持
注意 ,除文件外,您还可以指定要读取的工作表,并决定是显示公式本身(例如 “SUM(B1:B3)”)还是显示计算结果。
将 JSON(JavaScript 对象表示法)文件导入 R
在我们的第一篇 数据导入文章中,曾提到使用 rjson 包将 JSON 文件导入 R。
不过,您也可以使用其他包来导入 JSON 文件。继续阅读了解更多!
使用 jsonlite 包导入 JSON 文件
在最常下载的 R 包 前 25 名中,jsonlite 以 66952 次下载名列其中,深受 R 用户喜爱。
使用 fromJSON() 导入 JSON 文件:
library(jsonlite)
data <- fromJSON("<Path to your JSON file>")
技术支持
关于 jsonlite 的上手指南,请查看这里 。
使用 RJSONIO 包导入 JSON 文件
另一款常用的 JSON 导入包是 RJSONIO。与 jsonlite 类似,同样使用 fromJSON():
library(RJSONIO)
data <- fromJSON("<Path to your JSON file")
技术支持
最佳 JSON 包?
关于此话题已有不少讨论。如果您想了解更多,务必查看以下页面与文章:
这篇页面 主要通过代码示例说明,帮助您更深入了解 R 中 JSON 包的行为与性能。
强烈推荐阅读这篇博文 ,尝试找出在 R 中处理 JSON 数据表现最佳的包。
将统计软件包的数据导入 R
如果您的数据并非表格型,且不是 Excel 或 JSON 文件,它可能来自某款统计软件。
本节将介绍更多将 SPSS、Stata 或 SAS 文件读入 R 的方法,同时概览来自 S-plus 与 Epi Info 的文件导入。若想了解更多,请务必回看我们的第一篇文章 或文末所附链接。
将 SPSS 文件导入 R
除了使用 foreign 包,您也可以借助 haven 包将 SPSS 文件导入 R。
请记住 ,开始前请确保在工作区安装并加载该包!
haven 包提供 read_spss() 函数读取 SPSS 文件:
library(haven)
data <- read_spss("<path to your SPSS file>")
技术支持
将 Stata 文件导入 R
与 foreign 包类似,haven 也提供读取 Stata 文件的函数 read_dta():
data <- read_dta("<path to your STATA file>")
技术支持
请记住 ,必要时请先安装并加载包。例如,您可以通过以下命令安装并加载 haven :
install.packages("haven")
library(haven)
技术支持
将 SAS 文件导入 R
由于在上篇文章中已提到 sas7bdat 包,本篇将聚焦于读取 SAS 文件的其他方法:
1. 使用 foreign 包将 SAS XPORT 文件导入 R
foreign 包中的 read.xport() 也可将 SAS XPORT 文件导入 R:
library(foreign)
data <- read.xport("<path to your SAS file>")
技术支持
2. 使用 SASxport 包将 SAS XPORT 文件导入 R
sasXPORT 包也可用 read.xport() 读取 SAS XPORT 文件:
library(SASxport)
data <- read.xport("<path to your SAS file>")
技术支持
3. 使用 haven 包将 SAS 文件导入 R
与 foreign 与 sas7bdat 包类似,haven 包也可通过 read_sas() 读取 b7dat 文件:
library(haven)
data <- read_sas("<path to your SAS file>")
技术支持
将 S-plus 文件导入 R
对于旧的 S-plus 数据集(Windows 3.x、4.x 或 2000 版本,或 Unix 3.x 且为 4 字节整数生成的),可使用 foreign 包中的 read.S() 函数:
library(foreign)
data <- read.S("<Path to your file>")
技术支持
将 Epi Info 文件读入 R
如您在前文或本文已读到,foreign 包提供许多用于读取特定文件的函数,其中也包括 Epi Info。使用 read.epiinfo() 将数据导入 R:
library(foreign)
data <- read.epiinfo("<Path to your file>")
技术支持
关于 Epi Info 的更多信息,请点击这里 。
从其他来源将数据导入 R
除了常见来源与统计软件外,还有许多其他来源的数据也可能需要读入 R。
下面列出其中一些。继续阅读!
将 MATLAB 文件导入 R
可以使用 R.matlab 包及其 readMat() 函数,将 MATLAB 文件导入 R。
该函数的第一个参数可传入字符字符串或原始向量。第一种情况下,输入将被解释为文件名;第二种情况下,则视为原始二进制连接:
library(R.matlab)
data <- readMat("<Path to your file>")
技术支持
readMat() 将返回一个具名列表结构,包含从导入的 MAT 文件中读取的所有变量。
将 Octave 文件读入 R
foreign 包再次登场!使用 read.octave() 将 Octave 文本数据导入 R:
library(foreign)
data <- read.octave("<Path to your file>")
技术支持
将 FitbitScraper 数据导入 R
您可以使用 fitbitScraper 包从 fitbit 获取数据。
(对于不熟悉该公司的读者:该公司提供活动追踪器等科技设备,用于测量步数、睡眠质量等个人数据。)
关于如何使用 fitbitScraper 包的简短实用教程,请见这里 。
将 Quantmod 数据导入 R
您可以使用该包从互联网来源提取金融数据至 R。用于获取数据的函数是 getSymbols() ,示例如下:
library(quantmod)
data <- getSymbols("YHOO", src="google")
技术支持
注意 ,首先指定一个字符向量,包含要加载的每个符号的名称,此处为 "YHOO"。随后定义来源方式。目前可用的来源包括 yahoo、google、MySQL、FRED、csv、RData 和 oanda。
接下来,指定查找参数并保存以便将来会话使用:
setSymbolLookup(YHOO='google',GOOG='yahoo')
saveSymbolLookup(file="mysymbols.rda")
技术支持
新的会话中调用
loadSymbolLookup(file="mysymbols.rda")
getSymbols(c("YHOO","GOOG"))
技术支持
如果您想了解更多关于在 R 中进行定量金融分析的信息,请点击这里 ,或前往此页面 查看针对初学者的 quantmod 详细教程。
将 ARFF 文件导入 R
可使用 read.arff() 函数读取 Weka 的属性-关系文件格式(ARFF):
library(foreign)
data <- read.arff("<Path to your file>")
技术支持
关于该函数的更多信息,参见此页面 。
注意 ,RWeka 包也提供相同函数用于导入 ARFF 文件。若想了解更多,请点击这里 !
将数据库中的数据导入 R
除了上一篇中介绍的 MonetDB.R 、rmongodb 与 RMySQL ,还有其他包可用于在 R 中连接数据库。
您还可以使用 mongolite 、RMongo 、RODBC 、ROracle 、RPostgreSQL 、RSQLite 、RJDBC 。
关于这些包的教程,请查看以下列表:
注意 ,还有数据库接口包 DBI ,用于在 R 与关系型数据库管理系统之间通信。更多信息请点击这里 。
关于如何使用该包的说明,可参见这里 。
将二进制文件导入 R
二进制数据文件以二进制位分组存储信息。每个二进制位为 0 或 1。八个二进制位组成一个字节。您可以使用 readBin() 读取二进制数据:
connection <- file("<path to your file>", "rb") #You open the connection as "reading binary"(rb)
data <- readBin(connection,
what="numeric") #Mode of the vector to be read
技术支持
更详细的示例请见此页面 。关于 readBin() 的更多信息,点击这里 。
将二进制数据格式读入 R
hdf5 、h5r 、rhdf5 、RNetCDF 、ncdf 与 ncdf4 等包提供对 NASA 的 HDF5 和 UCAR 的 netCDF 数据文件的接口。
若您对在 R 中处理 HDF5 或 netCDF 文件的教程感兴趣,可参考以下资源:
一篇关于在 R 中处理 HDF 文件(并使用 pathfinder 包)的优秀教程在这里 ;
一篇易上手的 netCDF 初学者教程见此页面 。
将 DBF 文件导入 R
DBF(DataBase File)是 dBase 的底层格式。可使用 foreign 包提供的 read.dbf() 读取 DBF 文件:
library(foreign)
data <- read.dbf("<Path to your file>")
技术支持
注意 ,如果您在 Windows 下,也可使用 RODBC 包的 odbcConnectDbase() ,通过微软的 dBase ODBC 驱动读取 DBF 文件。
将“扁平”列联表导入 R
foreign 包允许读取多种文件格式;“扁平”列联表也不例外。您可以使用 read.ftable() 完成此操作:
library(foreign)
data <- read.ftable("<Path to your file>")
技术支持
请记住 ,“扁平”列联表与“普通”列联表非常相似:它们都包含变量(因子)各水平组合的计数。但信息被重新排列为矩阵形式,矩阵的行与列对应行、列表达式的水平唯一组合。因此,“扁平”列联表常用于表示更高维度的列联表。
将 GIS(地理信息系统)文件读入 R
您可以使用 rgdal 与 raster 等包将 GIS 文件导入 R。
如不确定如何上手 rgdal 包,可参考这篇优秀博文 ,介绍在 R 中处理地理空间数据。
您也可查看本教程 ,其中同时使用了 rgdal 与 raster 。
将 ITIS(综合分类信息系统)表导入 R
您可使用 read.table() 导入 ITIS 表:
data <- read.table("<Path to your file>")
技术支持
关于 ITIS 的更多信息,请点击这里 。
将大型数据集导入 R
导入大型数据集常在 R 用户间引发讨论。除了用于连接数据库的包外,还有一些在大数据处理方面表现突出的包。
使用 data.table 包导入大型数据集
被称为“快速且友好的文件处理器”的热门 data.table 包极其好用、易于上手。其 fread() 函数旨在直接从规则 的分隔文件导入数据到 R,无需绕路或繁琐步骤。
注意 ,此处“规则”指每一行必须拥有相同数量的列。例如:
V1 V2 V3
1 1 6 a
2 2 7 b
3 3 8 c
4 4 9 d
5 5 10 e
技术支持
该函数的优势之一在于,诸如 sep、colClasses 与 nrows 等控制参数可自动检测。并且,bit64::integer64 类型也会被检测并直接读取,无需先作为字符再转换。
请记住 ,bit64::integer64 类型是 64 位整数:这些数字在计算机中以 64 位长度存储。默认通常为 32 位。由于能检测到 bit64::integer64 类型,系统知道它是数字,而不会先以字符读入再转为整数。
fread() 的一个示例:
library(data.table)
data <- fread("http://assets.datacamp.com/blog_assets/chol.txt")
data
技术支持
## AGE HEIGHT WEIGHT CHOL SMOKE BLOOD MORT
## 1: 20 176 77 195 nonsmo b alive
## 2: 53 167 56 250 sigare o dead
## 3: 44 170 80 304 sigare a dead
## 4: 37 173 89 178 nonsmo o alive
## 5: 26 170 71 206 sigare o alive
## ---
## 196: 35 174 57 222 pipe a alive
## 197: 38 172 91 227 nonsmo b alive
## 198: 26 170 60 167 sigare a alive
## 199: 39 165 74 259 sigare o alive
## 200: 49 178 81 275 pipe b alive
技术支持
注意 ,使用 fread() 读入数据会返回一个 data.table:
str(data)
技术支持
## Classes 'data.table' and 'data.frame': 200 obs. of 7 variables:
## $ AGE : int 20 53 44 37 26 41 39 28 33 39 ...
## $ HEIGHT: int 176 167 170 173 170 165 174 171 180 166 ...
## $ WEIGHT: int 77 56 80 89 71 62 75 68 100 74 ...
## $ CHOL : int 195 250 304 178 206 284 232 152 209 150 ...
## $ SMOKE : chr "nonsmo" "sigare" "sigare" "nonsmo" ...
## $ BLOOD : chr "b" "o" "a" "o" ...
## $ MORT : chr "alive" "dead" "dead" "alive" ...
## - attr(*, ".internal.selfref")=<externalptr>
技术支持
这与 read.table() 不同,后者会创建数据框。
关于数据框与 data.table 的差异,详见这里 。简而言之,最重要的一点是:所有 data.table 也是 data.frame。data.table 可传递给只接受 data.frame 的包,该包可以对 data.table 使用 [.data.frame 语法。更多 data.table 内容见这里 。
library(data.table)
data <- fread("http://assets.datacamp.com/blog_assets/chol.txt",
sep=auto,
nrows = -1,
na.strings = c("NA","N/A",""),
stringsAsFactors=FALSE
)
技术支持
注意 ,输入也可以是本地文件,而非 URL。另请注意,许多参数与您在 read.table() 中使用的相同。
提示: 想更深入了解 data.table?也许我们的课程Data Analysis In R, The data.table Way 会对您有帮助!在Matt Dowle 与 Arun Srinivasan 的指导下,您将迅速从 data.table 新手成长为专家。
使用 ff 包导入大型数据集
ff 包支持“将大型数据以内存高效的方式存储在磁盘上,并提供快速访问函数”。当您查阅将大数据读入数据框的讨论时,它经常被提及,例如这里 。
如果要将分隔的纯文本文件导入 ff 数据框,可像使用 read.table() 及其变体或便捷封装(已在先前博文 介绍)那样,使用 read.table.ffdf()、read.csv.ffdf()、read.csv2.ffdf()、read.delim.ffdf() 或 read.delim2.ffdf():
bigdata <- read.table.ffdf(file="<Path to file>",
nrows=n)
技术支持
注意 ,第一个参数可以为 NULL(如本例)或指定一个可选的 ffdf 对象,读取的记录将追加到该对象。详情请见这里 。随后,通过 file 参数指定要读取数据的文件;您也可以通过 nrows 指定读取的最大行数(与 read.table() 相同!)。
您还可以进一步指定文件编码、因子水平,或用于读取每个分块的函数名:
library(ff)
bigdata <- read.table.ffdf(file="<Path to file>",
nrows=n,
fileEncoding="",
levels=NULL,
FUN="read.table")
技术支持
提示 :read.table.ffdf()、read.csv.ffdf()、read.csv2.ffdf()、read.delim.ffdf() 与 read.delim2.ffdf() 可用的更多参数见这里 。
使用 bigmemory 导入大型数据集
另一个在“大数据 + R”相关搜索中常出现的包是 bigmemory。它可“通过共享内存与内存映射文件管理海量矩阵”。
注意 ,该包无法在 Windows 上使用:暂无 Windows 二进制文件 。
library(bigmemory)
bigdata <- read.big.matrix(filename="<File name>",
sep="",
header=TRUE,
skip=2)
技术支持
通常先将文件名传入函数,然后可开始指定其他选项,如分隔符、是否包含表头、在开始读取前跳过的行数,分别通过 sep、header 与 skip 参数设置。
注意 ,以上仅为少数示例!read.big.matrix() 还能接受更多参数!如需了解更多,请阅读文档 。
使用 sqldf 将大型数据集读入 R
sqldf 也是处理大型数据集时可考虑的包。它允许“在 R 中执行 SQL 查询”,其中 read.csv.sql() 尤其适用于在将文件读入 R 时,以 SQL 语句筛选,这样只有部分数据会被 R 处理:
library(sqldf)
bigdata <- read.csv.sql(file="<Path to your file>",
sql="select * from file where ...",
colClasses=c("character",
rep("numeric",10)))
技术支持
注意 ,上述示例与其他导入大型数据集的函数非常相似,唯一的不同是传给 read.csv.sql() 的第二个参数是 SQL 语句。您在 SQL 查询中引用的表来自于 file 参数指定的文件。
提示 :关于 sqldf 的更多信息,可观看该视频教程 ,或阅读这篇文字概览 。
使用 read.table() 导入大型数据集
您可以使用“标准”的 read.table() 导入数据,但相比专为大数据设计的包,这可能更耗时。关于 read.table() 的用法,请回到我们的第一篇文章 。
为加快该函数,您可以自行做些优化,即为常用的 read.table() 添加一些参数,示例如下:
df <- read.table("<Path to your file>",
header = FALSE,
sep="",
quote = "",
na.strings = "EMPTY",
colClasses = c("character", "numeric", "factor"),
strip.white = TRUE,
comment.char="",
stringsAsFactors = FALSE,
nrows = n
)
技术支持
注意 :
首先传入(路径加)文件名,具体取决于您是否已将工作目录设置为文件所在的文件夹。
然后使用 header 指示文件首行是否包含变量名。本例中为否。
通过 sep 将字段分隔符设置为 /;即文件每行的值由该字符分隔。
接着您可以选择启用或禁用引用。本例中 quote="",表示禁用。
同时定义数据集中字符串 “EMPTY” 视为 NA 值。
然后定义列的类型:第一列为字符,第二列为数值,最后一列为因子。
设置 strip.white 以移除未加引号的字符字段的首尾空格;仅当使用了 sep 参数时适用!
当 comment.char 设为 "" 时,关闭注释解释。
不希望将字符转换为因子!因此设置了 colClasses,并进一步通过 stringsAsFactors = FALSE 进行确认。提示: 该参数与 colClasses、comment.char 一样,是顺利导入数据时较重要的参数!
最后,设置要读取的最大行数。
提示 :关于 read.table() 所有可传入参数的更多信息,强烈建议阅读我们关于在 R 中读取 Excel 文件 的文章。
使用 readr 包导入大型数据集
readr 也是导入大型数据集的快速选择之一,它允许像 read.table 一样读取表格型文本数据。但 readr 提供了“若干替代函数,具备额外功能且速度更快”(见这里 )。
df <- read_table("<Path to your file>",
col_names=TRUE)
技术支持
注意 ,readr 还提供 read_csv()、read_csv2()、read_delim()、read_fwf()、read_tsv() 等函数,这些都比原版更快!详情见这里 。
提示: 关于该包的更多信息可在这个 GitHub 页面 找到。
关于在 R 中处理大数据的一些备注
若需更多在 R 中处理大数据的技巧,建议查看这条 StackOverflow 讨论 ,其中既涉及包,也包含如将数据存为二进制格式、使用 saveRDS /readRDS ,或针对 HDF5 格式使用 rhdf5 等建议。
注意 ,最后这种文件格式已在上文介绍,且除上文提到的包外,还有许多其他包。例如,用于连接数据库的包(如 RODBC 与 MonetDB.R)也可轻松用于处理更大的数据集;另外在直接处理存储于多种数据库中的数据时,dplyr 也非常有价值。
提示: 对在 R 中进行数据整理感兴趣?不妨尝试我们的dplyr 互动课程 !在 Garrett Grolemund 的指导下,您将学习如何使用 dplyr 完成复杂的数据操作任务。
别忘了看看这篇有趣的文章 ,其测试了上述部分包的加载性能!
使用 rio 包将数据导入 R
这把“数据输入/输出的瑞士军刀”让您在 R 中输入与输出数据更轻松!几乎可以对任何文件格式进行输入或输出:安装 rio 包时,您其实是将许多独立的数据读取包汇集于一处。之后,进行数据输入或输出时,只需记住两个函数:import() 与 export() :rio 会依赖独立的数据读取包,通过文件扩展名推断数据结构、原生读取基于网络的数据源,并为导入与导出设置合理的默认值。
简而言之,rio 支持广泛、常用的导入与导出文件类型。
使用 rio 导入文件的方法如下:
library(rio)
data <- import("<Path to your file>")
技术支持
若想查看 rio 支持的具体文件格式,请访问此页面 。
结束语
如果您对在 R 中处理大数据感兴趣,务必查看 DataCamp 的课程:How To Work With Quandl in R 与 “Big Data Analysis With Revolution R Enterprise” !
在这篇对R 数据导入教程(第一部分)的后续教程中,DataCamp 继续以全面且易上手的方式,带您快速将数据导入 R,从简单的纯文本文件到更高级的 SPSS 与 SAS 文件。
正如许多读者从第一篇文章中敏锐指出的,一些用于将数据导入 R 的优秀包尚未得到关注,文章也未明确区分处理标准数据集与超大数据集的不同。为此,今天的文章将重点弥补这些内容。
继续阅读,发现更多将特定文件导入 R 的方法。如果您还有其他问题或发现需要更正的错误,欢迎联系我们。
(试试这门互动课程:Importing Data in R (Part 1),在 R 中处理 CSV 和 Excel 文件。)
从常见来源将数据导入 R
首先,本文将更深入地介绍如何将常见来源(通常是类似电子表格的数据)导入 R。与上一篇一样,重点是读取非 Excel 或其他类型的文件进入 R。
接着,将讨论来自统计软件、数据库、网页抓取等来源的数据。
如果您想了解在导入数据前可能需要执行的准备步骤,请前往我们的第一篇文章,其中解释了如何在将数据导入 R 前准备数据和工作区。
使用
scan()将纯文本文件读入 R除了在R 数据导入教程的第一部分中提到的
read.table()外,scan()函数同样适用于处理以简单分隔文本文件存储的数据。与read.table()不同,scan()返回的是列表或向量,而不是数据框。假设您有如下
.txt文档:您可以使用以下命令读入数据(可在这里下载):
注意,您的文件也可以是在线数据集。在这种情况下,只需将 URL 作为
scan()的第一个参数传入即可。或者,您也可以将数据读入矩阵:
提示:如果您想更严谨地处理,可能需要指定更多参数以得到所需的矩阵形式。关于
matrix()函数的更多信息,请参阅此页面。您也可以将输入文件的各列分别读入不同的向量:
注意,首先传入带扩展名的文件(路径)作为参数(取决于您是否将工作目录设置为包含数据集的文件夹),然后再指定要读取的数据类型、是否跳过数据集的第一行、字段分隔符字符,以及是否打印读取了多少项的提示信息。
如果数据中包含其他数据类型,您应对
scan()进行适当调整,如下例所示:提示:您也可以自己动手试试!可在这里下载上述使用的文本文件。
随后,您也可以将数据读入数据框:
提示:
scan()的许多参数与read.table()相同。因此,查阅文档总是有用的!如需了解scan()参数,请点击这里。请记住,您可以分别通过以下命令获取与设置工作目录:
使用
read.fwf()将定宽列数据导入 R要将“定宽格式数据表”读入 R 的数据框,您可以使用
read.fwf()(来自utils包)。当您的数据文件包含带空格的列,或相邻列之间没有空格分隔时,可使用此函数。
在这里,例如您知道学科名称总是位于每行的前 7 个字符,性别值总是在第 22 个字符,成绩从第 25 到第 30 个字符。
如果您想试着将这些数据载入 R,可在这里下载文本文件。
要将上述数据正确导入 R,您需要执行以下命令:
注意,
widths参数给出定宽字段的宽度。本例中,文件的前 7 个字符保留给课程名称;然后,您不想读取接下来的 14 个字符,于是传入-14。接着,性别占 1 个字符,但不需要随后的两个字符,因此传入-2。之后所有字符需分别读入各列,因此以1,1,1,1,1,1进行切分。当然,这些值会根据您要导入的列而变化。read.fwf()还可以接受若干额外参数。点击这里了解更多。注意,如果您想使用 Fortran 风格的格式说明来读入文件,可以使用
read.fortran()函数:如上方小例所示,您将 Fortran 风格的格式说明作为
read.fortran()的第二个参数。可传入的参数样式包括:“rFl.d”、“rDl.d”、“rXl”、“rAl”或“rIl”,其中“l”为列宽,“d”为小数位数,“r”为重复次数。本例通过c()传入2.1、2.0和2,表示有三列、两行。第一列为一位小数,第二、三列为无小数位的数值。至于列中值的类型,您可以有:
本例中,第一、二列为数值格式,第三列为整数值。
注意,重复码“r”和小数位码“d”始终可选。长度码“l”是必需的,除非在 “X” 格式且存在“r”时。
将(Google)电子表格导入 R
正如您可能在我们关于在 R 中读取与导入 Excel 文件的教程或第一篇R 数据导入教程中已读到的,电子表格可以通过多种方式导入 R。本节将进一步展开,涵盖 Google 表格与 DIF 文件!
继续往下,了解如何将电子表格导入 R。
将 Excel 电子表格导入 R
除了
xlsx包,您还有多种选项可将电子表格读入 R:1. 从剪贴板将 Excel 电子表格读入 R
如果您打开了电子表格,实际上可以将内容复制到剪贴板并快速导入 R。为此,您可以使用
readClipboard()或read.table():如您亲自尝试会发现,第一种方法对向量数据较合适,但对于剪贴板中的表格数据会较复杂。若想进一步了解
read.table(),请务必参阅 R 数据导入教程的第一部分或我们关于在 R 中读取与导入 Excel 文件的教程。2. 通过 RODBC 包将 Excel 电子表格导入 R
第二种方法是通过
RODBC包:注意,传给
odbcConnect()的参数实际上是 DSN。关于如何配置 DSN、建立连接等的完整指南,请参阅此页面,内容详尽且易上手!sqlQuery()从.xls表格读取数据:强烈推荐:前往此页面获取详尽且易上手的教程!
在 R 会话结束时,别忘了关闭连接:
提示:如果您想进一步了解将电子表格或 Excel 文件导入 R,请务必查看我们的导入数据到 R第一篇教程,或阅读我们关于在 R 中读取与导入 Excel 文件的教程,其中也介绍了
readxl与XLConnect等包。将 Google 表格导入 R
googlesheets包及其gs_read()函数可将 Google 表格读入 R。先执行以下代码:
让浏览器启动并完成认证。随后,如果您想读取或编辑数据,需要先注册该表格。您可按标题或 key 指定表格:
接下来读取数据:
以上只是
googlesheets包的简要概览。务必阅读这里的详细说明,并查看此页。将 DIF(数据交换格式)文件读入 R
使用
read.DIF()将 DIF 文件导入 R:注意,您可指定电子表格是否包含表头,以及是否“按原样”导入数据,即字符变量是否转换为因子。本例中不希望转换为因子,因此使用
!stringsAsFactors。关于该函数及其参数的更多信息,请访问此页面。
将 Excel 文件导入 R
除了电子表格,您或许也希望将实际的 Excel 文件导入 R。继续阅读了解具体方法!
注意,本文仅在我们在 R 中读取与导入 Excel 文件教程以及第一篇R 数据导入教程的基础上进一步展开!
使用
readxl将 Excel 文件导入 R尽管该包仍在积极开发中,但非常值得一试,因为它能非常轻松地读取 Excel 文件:
请记住,如果文件夹在您的工作目录中,只需输入文件名及其扩展名即可。使用以下代码获取与设置工作目录:
注意,您可以分别通过
sheet、col_names、col_types、na与skip参数指定要读取的工作表、列名与类型、缺失值以及读取数据前要跳过的行数。详见这里。使用
openxlsx将 Excel 文件读入 Ropenxlsx 包也提供了简单的方法将
.xlsxExcel 文件读入 R:如需了解该包或
read.xlsx()可传入的参数,点击这里。提示:若想进一步了解将 Excel 文件导入 R,请查看我们的“将数据导入 R”首篇教程,或阅读我们更为详尽的在 R 中读取与导入 Excel 文件的教程,其中也介绍了
XLConnect等包。将 OpenDocument 电子表格导入 R
使用
read.ods()(来自readODS包)将 OpenDocument 电子表格读入 R 并转为数据框:注意,除文件外,您还可以指定要读取的工作表,并决定是显示公式本身(例如 “SUM(B1:B3)”)还是显示计算结果。
将 JSON(JavaScript 对象表示法)文件导入 R
在我们的第一篇数据导入文章中,曾提到使用
rjson包将 JSON 文件导入 R。不过,您也可以使用其他包来导入 JSON 文件。继续阅读了解更多!
使用
jsonlite包导入 JSON 文件在最常下载的R 包前 25 名中,
jsonlite以 66952 次下载名列其中,深受 R 用户喜爱。使用
fromJSON()导入 JSON 文件:关于
jsonlite的上手指南,请查看这里。使用
RJSONIO包导入 JSON 文件另一款常用的 JSON 导入包是
RJSONIO。与jsonlite类似,同样使用fromJSON():最佳 JSON 包?
关于此话题已有不少讨论。如果您想了解更多,务必查看以下页面与文章:
将统计软件包的数据导入 R
如果您的数据并非表格型,且不是 Excel 或 JSON 文件,它可能来自某款统计软件。
本节将介绍更多将 SPSS、Stata 或 SAS 文件读入 R 的方法,同时概览来自 S-plus 与 Epi Info 的文件导入。若想了解更多,请务必回看我们的第一篇文章或文末所附链接。
将 SPSS 文件导入 R
除了使用 foreign 包,您也可以借助
haven包将 SPSS 文件导入 R。请记住,开始前请确保在工作区安装并加载该包!
haven包提供read_spss()函数读取 SPSS 文件:将 Stata 文件导入 R
与 foreign 包类似,
haven也提供读取 Stata 文件的函数read_dta():请记住,必要时请先安装并加载包。例如,您可以通过以下命令安装并加载
haven:将 SAS 文件导入 R
由于在上篇文章中已提到
sas7bdat包,本篇将聚焦于读取 SAS 文件的其他方法:1. 使用
foreign包将 SAS XPORT 文件导入 Rforeign 包中的
read.xport()也可将 SAS XPORT 文件导入 R:2. 使用
SASxport包将 SAS XPORT 文件导入 RsasXPORT包也可用read.xport()读取 SAS XPORT 文件:3. 使用
haven包将 SAS 文件导入 R与
foreign与sas7bdat包类似,haven包也可通过read_sas()读取 b7dat 文件:将 S-plus 文件导入 R
对于旧的 S-plus 数据集(Windows 3.x、4.x 或 2000 版本,或 Unix 3.x 且为 4 字节整数生成的),可使用
foreign包中的read.S()函数:将 Epi Info 文件读入 R
如您在前文或本文已读到,
foreign包提供许多用于读取特定文件的函数,其中也包括 Epi Info。使用read.epiinfo()将数据导入 R:关于 Epi Info 的更多信息,请点击这里。
从其他来源将数据导入 R
除了常见来源与统计软件外,还有许多其他来源的数据也可能需要读入 R。
下面列出其中一些。继续阅读!
将 MATLAB 文件导入 R
可以使用
R.matlab包及其readMat()函数,将 MATLAB 文件导入 R。该函数的第一个参数可传入字符字符串或原始向量。第一种情况下,输入将被解释为文件名;第二种情况下,则视为原始二进制连接:
readMat()将返回一个具名列表结构,包含从导入的 MAT 文件中读取的所有变量。将 Octave 文件读入 R
foreign包再次登场!使用read.octave()将 Octave 文本数据导入 R:将 FitbitScraper 数据导入 R
您可以使用
fitbitScraper包从 fitbit 获取数据。(对于不熟悉该公司的读者:该公司提供活动追踪器等科技设备,用于测量步数、睡眠质量等个人数据。)
关于如何使用
fitbitScraper包的简短实用教程,请见这里。将 Quantmod 数据导入 R
您可以使用该包从互联网来源提取金融数据至 R。用于获取数据的函数是
getSymbols(),示例如下:注意,首先指定一个字符向量,包含要加载的每个符号的名称,此处为
"YHOO"。随后定义来源方式。目前可用的来源包括 yahoo、google、MySQL、FRED、csv、RData 和 oanda。接下来,指定查找参数并保存以便将来会话使用:
新的会话中调用
如果您想了解更多关于在 R 中进行定量金融分析的信息,请点击这里,或前往此页面查看针对初学者的 quantmod 详细教程。
将 ARFF 文件导入 R
可使用
read.arff() 函数读取 Weka 的属性-关系文件格式(ARFF):关于该函数的更多信息,参见此页面。
注意,
RWeka包也提供相同函数用于导入 ARFF 文件。若想了解更多,请点击这里!将数据库中的数据导入 R
除了上一篇中介绍的
MonetDB.R、rmongodb与RMySQL,还有其他包可用于在 R 中连接数据库。您还可以使用
mongolite、RMongo、RODBC、ROracle、RPostgreSQL、RSQLite、RJDBC。关于这些包的教程,请查看以下列表:
mongolite,本教程或可助您一臂之力;RMongo的帮助,请参见这篇博文;RODBC包也在此教程中有详细讨论。若需更简短的说明,请点击这里;ROracle,可查看此演示文稿;RPostgreSQL的更多信息,请点击这里或这里;RSQLite,强烈推荐阅读这篇信息量极大的教程;RJDBC连接 SQL Server,请查看这篇博文;若要连接 Oracle 数据库,请访问此页面。注意,该页面也提供了连接 Oracle 数据库的其他选项。注意,还有数据库接口包
DBI,用于在 R 与关系型数据库管理系统之间通信。更多信息请点击这里。关于如何使用该包的说明,可参见这里。
将二进制文件导入 R
二进制数据文件以二进制位分组存储信息。每个二进制位为 0 或 1。八个二进制位组成一个字节。您可以使用
readBin()读取二进制数据:更详细的示例请见此页面。关于 readBin() 的更多信息,点击这里。
将二进制数据格式读入 R
hdf5、h5r、rhdf5、RNetCDF、ncdf与ncdf4等包提供对 NASA 的 HDF5 和 UCAR 的 netCDF 数据文件的接口。若您对在 R 中处理 HDF5 或 netCDF 文件的教程感兴趣,可参考以下资源:
将 DBF 文件导入 R
DBF(DataBase File)是 dBase 的底层格式。可使用
foreign包提供的read.dbf()读取 DBF 文件:注意,如果您在 Windows 下,也可使用
RODBC包的odbcConnectDbase(),通过微软的 dBase ODBC 驱动读取 DBF 文件。将“扁平”列联表导入 R
foreign包允许读取多种文件格式;“扁平”列联表也不例外。您可以使用read.ftable()完成此操作:请记住,“扁平”列联表与“普通”列联表非常相似:它们都包含变量(因子)各水平组合的计数。但信息被重新排列为矩阵形式,矩阵的行与列对应行、列表达式的水平唯一组合。因此,“扁平”列联表常用于表示更高维度的列联表。
将 GIS(地理信息系统)文件读入 R
您可以使用
rgdal与raster等包将 GIS 文件导入 R。如不确定如何上手
rgdal包,可参考这篇优秀博文,介绍在 R 中处理地理空间数据。您也可查看本教程,其中同时使用了
rgdal与raster。将 ITIS(综合分类信息系统)表导入 R
您可使用
read.table()导入 ITIS 表:关于 ITIS 的更多信息,请点击这里。
将大型数据集导入 R
导入大型数据集常在 R 用户间引发讨论。除了用于连接数据库的包外,还有一些在大数据处理方面表现突出的包。
使用
data.table包导入大型数据集被称为“快速且友好的文件处理器”的热门
data.table包极其好用、易于上手。其fread()函数旨在直接从规则的分隔文件导入数据到 R,无需绕路或繁琐步骤。注意,此处“规则”指每一行必须拥有相同数量的列。例如:
该函数的优势之一在于,诸如
sep、colClasses与nrows等控制参数可自动检测。并且,bit64::integer64类型也会被检测并直接读取,无需先作为字符再转换。请记住,
bit64::integer64类型是 64 位整数:这些数字在计算机中以 64 位长度存储。默认通常为 32 位。由于能检测到bit64::integer64类型,系统知道它是数字,而不会先以字符读入再转为整数。fread()的一个示例:注意,使用
fread()读入数据会返回一个 data.table:这与
read.table()不同,后者会创建数据框。关于数据框与 data.table 的差异,详见这里。简而言之,最重要的一点是:所有 data.table 也是 data.frame。data.table 可传递给只接受 data.frame 的包,该包可以对 data.table 使用 [.data.frame 语法。更多 data.table 内容见这里。
注意,输入也可以是本地文件,而非 URL。另请注意,许多参数与您在
read.table()中使用的相同。提示:想更深入了解 data.table?也许我们的课程Data Analysis In R, The data.table Way会对您有帮助!在Matt Dowle 与 Arun Srinivasan 的指导下,您将迅速从 data.table 新手成长为专家。
使用
ff包导入大型数据集ff包支持“将大型数据以内存高效的方式存储在磁盘上,并提供快速访问函数”。当您查阅将大数据读入数据框的讨论时,它经常被提及,例如这里。如果要将分隔的纯文本文件导入 ff 数据框,可像使用
read.table()及其变体或便捷封装(已在先前博文介绍)那样,使用read.table.ffdf()、read.csv.ffdf()、read.csv2.ffdf()、read.delim.ffdf()或read.delim2.ffdf():注意,第一个参数可以为
NULL(如本例)或指定一个可选的ffdf对象,读取的记录将追加到该对象。详情请见这里。随后,通过file参数指定要读取数据的文件;您也可以通过nrows指定读取的最大行数(与read.table()相同!)。您还可以进一步指定文件编码、因子水平,或用于读取每个分块的函数名:
提示:
read.table.ffdf()、read.csv.ffdf()、read.csv2.ffdf()、read.delim.ffdf()与read.delim2.ffdf()可用的更多参数见这里。使用
bigmemory导入大型数据集另一个在“大数据 + R”相关搜索中常出现的包是
bigmemory。它可“通过共享内存与内存映射文件管理海量矩阵”。注意,该包无法在 Windows 上使用:暂无 Windows 二进制文件。
通常先将文件名传入函数,然后可开始指定其他选项,如分隔符、是否包含表头、在开始读取前跳过的行数,分别通过
sep、header与skip参数设置。注意,以上仅为少数示例!
read.big.matrix()还能接受更多参数!如需了解更多,请阅读文档。使用
sqldf将大型数据集读入 Rsqldf也是处理大型数据集时可考虑的包。它允许“在 R 中执行 SQL 查询”,其中read.csv.sql()尤其适用于在将文件读入 R 时,以 SQL 语句筛选,这样只有部分数据会被 R 处理:注意,上述示例与其他导入大型数据集的函数非常相似,唯一的不同是传给
read.csv.sql()的第二个参数是 SQL 语句。您在 SQL 查询中引用的表来自于file参数指定的文件。提示:关于
sqldf的更多信息,可观看该视频教程,或阅读这篇文字概览。使用
read.table()导入大型数据集您可以使用“标准”的
read.table()导入数据,但相比专为大数据设计的包,这可能更耗时。关于read.table()的用法,请回到我们的第一篇文章。为加快该函数,您可以自行做些优化,即为常用的
read.table()添加一些参数,示例如下:注意:
header指示文件首行是否包含变量名。本例中为否。sep将字段分隔符设置为/;即文件每行的值由该字符分隔。quote="",表示禁用。strip.white以移除未加引号的字符字段的首尾空格;仅当使用了sep参数时适用!comment.char设为""时,关闭注释解释。colClasses,并进一步通过stringsAsFactors = FALSE进行确认。提示:该参数与
colClasses、comment.char一样,是顺利导入数据时较重要的参数!提示:关于
read.table()所有可传入参数的更多信息,强烈建议阅读我们关于在 R 中读取 Excel 文件的文章。使用
readr包导入大型数据集readr也是导入大型数据集的快速选择之一,它允许像 read.table 一样读取表格型文本数据。但readr提供了“若干替代函数,具备额外功能且速度更快”(见这里)。注意,
readr还提供read_csv()、read_csv2()、read_delim()、read_fwf()、read_tsv()等函数,这些都比原版更快!详情见这里。提示:关于该包的更多信息可在这个 GitHub 页面找到。
关于在 R 中处理大数据的一些备注
若需更多在 R 中处理大数据的技巧,建议查看这条 StackOverflow 讨论,其中既涉及包,也包含如将数据存为二进制格式、使用
saveRDS/readRDS,或针对 HDF5 格式使用rhdf5等建议。注意,最后这种文件格式已在上文介绍,且除上文提到的包外,还有许多其他包。例如,用于连接数据库的包(如
RODBC与MonetDB.R)也可轻松用于处理更大的数据集;另外在直接处理存储于多种数据库中的数据时,dplyr也非常有价值。提示:对在 R 中进行数据整理感兴趣?不妨尝试我们的
dplyr互动课程!在 Garrett Grolemund 的指导下,您将学习如何使用dplyr完成复杂的数据操作任务。别忘了看看这篇有趣的文章,其测试了上述部分包的加载性能!
使用
rio包将数据导入 R这把“数据输入/输出的瑞士军刀”让您在 R 中输入与输出数据更轻松!几乎可以对任何文件格式进行输入或输出:安装
rio包时,您其实是将许多独立的数据读取包汇集于一处。之后,进行数据输入或输出时,只需记住两个函数:import()与export():rio会依赖独立的数据读取包,通过文件扩展名推断数据结构、原生读取基于网络的数据源,并为导入与导出设置合理的默认值。简而言之,
rio支持广泛、常用的导入与导出文件类型。使用
rio导入文件的方法如下:若想查看
rio支持的具体文件格式,请访问此页面。结束语
如果您对在 R 中处理大数据感兴趣,务必查看 DataCamp 的课程:How To Work With Quandl in R 与 “Big Data Analysis With Revolution R Enterprise”!