您好,欢迎访问三七文档
R语言数据导入来源:DataCampBlog编译:亮亮上期我们了解了R语言数据读入的核心函数read.table,现在我们了解一下其他可以用的函数有哪些,以及使用的场景和基本技巧。非关系结构文件读入scan()除了read.table()这类读取文本文档的函数,还可以用scan()函数读入。不同的是它的返回值为列表或者向量。假设我们有下述文本文档241991211993531962下列命令可以读入该数据data-scan(e:/birth.txt)data##[1]241991211993531962此外,你代码稍加改造可以将数据变矩阵。matrix(data,nrow=2,byrow=FALSE)##[,1][,2][,3]##[1,]242153##[2,]199119931962scan()也同样支持访问url数据上的数据,现在我们访问网上的一个age数据data-scan(=list(Age=0,Name=,Birthyear=0),skip=1,sep=,,quiet=TRUE)data注意上述代码中的what参数,如果what为list类通过上述代码可以读入类似于spreadsheet类型的文本文档。只需要定义每行中各个项目(列)的类型。scan()其他众多参数的用法和read.table比较类似。固定列宽数据读入read.fwf()有的时候我们可以知道每一列的宽度是多少,下列代码可以让我们读入这类数据data-read.fwf(=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)data上述代码中width参数给出了字段的宽度。本例中,前7个字符为课程名字;然后的14个字符我们认为不需要,用-14跳过;接着,性别这一列需要一个宽度的字符;后面的2个空格不需要,用-2跳过;后续的成绩每列需要一个宽度1,1,1,1,1,1传入参数中。这些参数在不同的数据结构下,会有所不同。另外,还可以使用read.fortran()函数读取数据,详细方法可以参见help文档理解。导入excel数据剪切板导入excel表格如果你已经有了个打开的表格,你可以复制其中的内容,然后用readClipboard()或者read.table()函数导入数据。readClipboard()#OnlyonWindowsread.table(file=clipboard)`RODBC包读入excel数据通过RODBC包同样可以导入excel数据表。代码样例如下library(RODBC)connection-odbcConnect(DSN)其中,dsn的写法可以参考odbcConnect()函数的帮助文档。此外,odbcConnectExcel()同样可以读入excel数据。•当你读入了Excel数据表后,相当于建立了一个连接,你可以使用sql语句来操作数据query-SQLQuerydata-sqlQuery(connection,query)str(data)用RODBC包的建立了连接后,在操作完数据要使用odbcCloseAll()其他方法读入excel数据其他可以参考的方法有:*openxlsx包中的read.xlsx函数。*readxl包中的read_excel函数。其他类型的数据读入其他主流数据类型R可支持的包括有JSON格式,SPSS文件,Stata文件,SAS文件,s-plus文件,EpiInfo文件,matlab文件,Octave文件,FitbitScraper数据,Quantmod数据,ARFF文件。支持导入的数据库有,MogoDB,MySQL,Oracle,PostgreSQL,SQLite,RJDBC,dBase等。二进制数据读入二进制数据由二进制浮点组成,8个浮点为一个字节。可以使用readBin函数读入此类数据。connection-file(pathtoyourfile,rb)#Youopentheconnectionasreadingbinary(rb)data-readBin(connection,what=numeric)#ModeofthevectortobereadGIS数据读入地理信息数据在R中也比较常用,常见的rgdal和raster包都有对应的函数处理此类数据。大型数据集的读入如何导入较大的数据一直是R用户的经常讨论的问题,除了将数据导入数据库中处理外,也有一些比较不错的处理大型数据的方法。•data.table包中的fread函数是比较容易实现快速读入大数据的方法,读入大型数据速度相当理想。library(data.table)data-fread(=auto,nrows=-1,na.strings=c(NA,N/A,),stringsAsFactors=FALSE)•ff包:该程序包磁盘缓存的技术可以读入超过内存限值大小的数据,常用的函数有read.table.ffdf(),read.csv.ffdf()等。library(ff)bigdata-read.table.ffdf(file=Pathtofile,nrows=n,fileEncoding=,levels=NULL,FUN=read.table)•bigmemory包,此包也常用于处理大型数据。样例代码如下,但是此包不能用于windows系统:library(bigmemory)bigdata-read.big.matrix(filename=Filename,sep=/,header=TRUE,skip=2)•sqldf包,此包也可以考虑用于处理大型数据,它还可以使用sql语句处理数据。用read.csv.sql()函数读入数据。library(sqldf)bigdata-read.csv.sql(file=Pathtoyourfile,sql=select*fromfilewhere...,colClasses=c(character,rep(numeric,10)))•随后我们别忘了R中的read.table函数,但是,用此函数读入大型数据,需要对参数有较好的控制。简单说,你能设置的参数越多,读入数据的速度越快。总结最后,我们将上述常见的方法做个了总结表格,读者可在用时参考,该表格涵盖了大部分常用数据格式的读入方法。函数来源描述scanr-base顺序读取文件中的数据值read.fwfr-base按行和指定列宽度读取数据read.fortranr-base采用fortran格式设置读取固定格式数据readClipboardr-base读取剪切板中的数据odbcConnectRODBC包读取excel数据,采用odbcgs_readgooglesheet包读取googlesheetread.DIFr-base读取DIF文件read_excelreadxl包读取excel文件read.xlsxopenxlsx包读取excel的xlsx文件read.odsreadODS包读取opendocument表格文档fromJSONjsonlite包读取JavaScript的json文件read_spsshaven包读取spss文件read_dtahaven包读取stata文件read.xportforgein包,sasXPORT包读取sas文件read.Sforeign包读取s-splus文件read.epiinfoforeign包读取epiInfo文件readMatR.matlab包读取MATLAB文件read.octaveforeign包读取Octave文件read.arffforeign包读取Weka属性关系文件(ARFF)…mongolite包,Rmongo包,RODBC包,Roracle包,RPostgreSQL包,RSQLite包,RJDBC包各类常见数据库导入数据到RreadBinr-base读入二进制文件…hdf5包,h5r包,rhdf5包,RNetCDF包,ncdf包读入hdf文件,NASA和UCAR常用气象数据读取read.dbfforeign包读入DBF文件read.ftabler-base读入无格式列联表Flatcontingencytablefreaddata.table包大型文本文档读入read.table.ffdfread.csv.ffdf…ff包大型文本文档读入read.big.matrixbigmemory包大型文本文档读入,无法在windows下使用read.csv.sqlsqldf包大型文本文档读入read.tabler-base大型文本文档读入,但是需要合理设计参数,否则速度不理想
本文标题:R语言数据导入
链接地址:https://www.777doc.com/doc-2856421 .html