您的位置 首页 > 数码极客

spss如何读取txt文件

上期我们了解了R语言数据读入的核心函数read.table,现在我们了解一下其他可以用的函数有哪些,以及使用的场景和基本技巧。

非关系结构文件读入scan()

除了read.table()这类读取文本文档的函数,还可以用scan()函数读入。不同的是它的返回值为列表或者向量。

假设我们有下述文本文档

241991
211993
531962

下列命令可以读入该数据

data<-scan("e:/birth.txt")data## [1] 24 1991 21 1993 53 1962

此外,你代码稍加改造可以将数据变矩阵。

matrix(data,nrow=2,byrow=FALSE)## [,1] [,2] [,3]

scan()也同样支持访问url数据上的数据,现在我们访问网上的一个age数据

data <- scan(";, what = list(Age = 0,## $Age

注意上述代码中的what参数,如果what为list类通过上述代码可以读入类似于spreadsheet类型的文本文档。只需要定义每行中各个项目(列)的类型。scan()其他众多参数的用法和read.table比较类似。

固定列宽数据读入read.fwf()

有的时候我们可以知道每一列的宽度是多少,下列代码可以让我们读入这类数据

data <- read.fwf(";, widths= c(7,-14,1,-2,1,1,1,1,1,1),## subject sex s1 s2 s3 s4 s5 s6

上述代码中width参数给出了字段的宽度。本例中,前7个字符为课程名字;然后的14个字符我们认为不需要,用-14跳过;接着,性别这一列需要一个宽度的字符;后面的2个空格不需要,用-2跳过;后续的成绩每列需要一个宽度1,1,1,1,1,1传入参数中。这些参数在不同的数据结构下,会有所不同。

另外,还可以使用read.fortran()函数读取数据,详细方法可以参见help文档理解。

导入excel数据

剪切板导入excel表格

如果你已经有了个打开的表格,你可以复制其中的内容,然后用readClipboard()或者read.table()函数导入数据。

readClipboard() #Only on Windows

RODBC包读入excel数据

通过RODBC包同样可以导入excel数据表。代码样例如下

library(RODBC)

其中,dsn的写法可以参考odbcConnect()函数的帮助文档。此外,odbcConnectExcel()同样可以读入excel数据。

  • 当你读入了Excel数据表后,相当于建立了一个连接,你可以使用sql语句来操作数据

    query <- "<SQL Query>"

    用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("<path to your file>", "rb") #You open the connection as "reading binary"(rb)

GIS数据读入

地理信息数据在R中也比较常用,常见的rgdal和raster包都有对应的函数处理此类数据。

大型数据集的读入

如何导入较大的数据一直是R用户的经常讨论的问题,除了将数据导入数据库中处理外,也有一些比较不错的处理大型数据的方法。

  • da包中的fread函数是比较容易实现快速读入大数据的方法,读入大型数据速度相当理想。

    library(da)
  • ff包:该程序包磁盘缓存的技术可以读入超过内存限值大小的数据,常用的函数有read.(),read.c()等。

    library(ff)
  • bigmemory包,此包也常用于处理大型数据。样例代码如下,但是此包不能用于windows系统:

    library(bigmemory)
  • sqldf包,此包也可以考虑用于处理大型数据,它还可以使用sql语句处理数据。用read.c()函数读入数据。

    library(sqldf)
  • 随后我们别忘了R中的read.table函数,但是,用此函数读入大型数据,需要对参数有较好的控制。简单说,你能设置的参数越多,读入数据的速度越快。

总结

最后,我们将上述常见的方法做个了总结表格,读者可在用时参考,该表格涵盖了大部分常用数据格式的读入方法。

函数来源描述
scanr-base顺序读取文件中的数据值
read.fwfr-base按行和指定列宽度读取数据
read.fortranr-base采用fortran格式设置读取固定格式数据
readClipboardr-base读取剪切板中的数据
odbcConnectRODBC包读取excel数据,采用odbc
gs_readgooglesheet包读取google sheet
read.DIFr-base读取DIF文件
read_excelreadxl包读取excel文件
read.xlsxopenxlsx包读取excel的xlsx文件
read.odsreadODS包读取open document表格文档
fromJSONjsonlite包读取JavaScript的json文件
read_spsshaven包读取spss文件
read_dtahaven包读取stata文件
read.xportforgein包,sasXPORT包读取sas文件
read.Sforeign包读取s-splus文件
read.epiinfoforeign包读取epi Info文件
readMatR.matlab包读取MATLAB文件
read.octaveforeign包读取Octave文件
read.arffforeign包读取Weka属性关系文件(ARFF)
mongolite包,Rmongo包,RODBC包,Roracle包,RPostgreSQL包,RSQLite包,RJDBC包各类常见数据库导入数据到R
readBinr-base读入二进制文件
hdf5包,h5r包,rhdf5包,RNetCDF包,ncdf包读入hdf文件,NASA和UCAR常用气象数据读取
read.dbfforeign包读入DBF文件
read.ftabler-base读入无格式列联表Flat contingency table
freadda包大型文本文档读入
read. read.c …ff包大型文本文档读入
read.big.matrixbigmemory包大型文本文档读入,无法在windows下使用
read.csqldf包大型文本文档读入
read.tabler-base大型文本文档读入,但是需要合理设计参数,否则速度不理想

来源:DataCamp 编译:亮亮

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“spss如何读取txt文件”边界阅读