分享

R-数据加载(csv,excel,txt,rdata,spss,stata)

 百鸣村 2023-02-27 发布于湖北

原始数据可以从本地文件,本地数据库和网络上获取。本地文件主要包括:txt文件,csv文件,excel文件,RData文件,xml文件。本地数据库类型包括SQL Server,Access,MySQL,SQLite等常见数据库。网络数据则包括直接存放在网络上的文件数据(csv,excel,txt等)和需要进行爬取的网页数据。
由于大部分的数据都是本地文件和网上的文件,因此这里着重讲解一下本地文件和网上文件的加载方式。有需要加载数据库文件,或诸如SPASS数据,SAS数据,Stata数据,XML数据等特殊数据的,可以留言给我。

1.从键盘中读取数据

#1.设置要读入数据的列名和数据类型
data=data.frame(name=character(0),age=numeric(0))
#2.edit()函数会自动弹出一个表格填写想要输入的数据
data=edit(data)

2.读取txt数据和csv数据,网络数据

data=read.table(file/url, header=TRUE, sep="", row.names=c(), col.names=c(),encoding="", colClasses=c(), stringsAsFactors=TRUE)

read.table()函数可以读取txt和csv两种数据类型。
常用的参数也就是以下几个:
file/url: 可以是本地文件,如"mydic/xxx.csv",也可是指定具体网址的网络文件。
header: TRUE表示数据含有列名,FALSE表示原始数据不含列名,只有数据。
sep: 指定数据之间的分隔符,默认为空。若是空格,则需要打一个空格键。
row.names: 若原始数据没有列名,可以通过该参数指定列名。如:row.names=c(“name”,“age”,“height”).
col.names: 为数据指定行名称。
encoding: 指定读取数据时的编码方式。有时候读取中文数据时,会出现乱码,这时候encoding="UTF-8"就可以解决问题。记住里面UTF是大写,不能小写。
colClasses: 为每列指定数据类型。有时候读取的数据类型不是我们想要的,可以在读取时指定数据类型,如colClasses=c(“character”,“numeric”,“factor”).
stringAsFactors: 由于读取数据时,函数会自动将字符串数据转化成因子类型。将该值设置为FALSE后,就不会自动转化了。
其他参数不是很常用,如需要,可自行查资料。

3.读取excel数据

R读取excel数据前需要安装并加载xlsx包,实质是调用该包进行数据读写的。
部分参数和上面的参数一致,这里不再赘述,来看几个特别的参数

#这个xlsx包一定要加载,否则无法读取数据
liabrary(xlsx)
read.xlsx(file, sheetName="",sheetIndex=1,colIndex=c(), rowIndex=c())

sheetName: 由于一个excel文件可能包含多个表,因此需要指定读取哪个表。sheetName指定目标表的名称。
**sheetIndex:**指定目标表的索引。(注意R中所有的索引都是从1开始的,这与Python是不一样的)
colIndex: 指定需要读取的列,如colIndex=c(1,3,4)。仅读取第1,3,4 列。
rowIndex: 指定要读取的行。

另外还有一个read.xlsx2()的函数,该函数用于处理大型的excle表格(超过10万行),这个函数内部调用了java函数,因此用之前需要安装java.

4.读取csv数据

参数同read.table(), 不再赘述。

read.csv(file,...)

5.读取RData数据

由于RData数据加载后并不显示内部包含哪些数据集,因此可以通过str()函数查看内部数据情况。

#load()函数加载数据,但返回的data并不是最终的数据集,而是数据集的一个容器。
data=load("xxx.RData")
#str()函数查看容器内部数据集
str(data)

6.导入SPSS,SAS,Stata数据

#需要加载Hmisc包
library(Hmisc)
#加载spss数据
data=spss.get("mydata.sav", use.value.labels=TRUE)
#加载SAS数据,需要提前安装SAS软件。
data=sas.get(datadir, member="clients",sasprog="c:/xx/xx/sas.exe")
#加载Stata数据
library(foreign)
data=read.dta("xxx.dta")

补充:

有其他数据类型加载需求或有任何疑问,可留言给我。转载请标明出处,感谢。
欢迎关注公众号:moisiets

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多