R语言实战第二章代码

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

#2.1.1data()#查看数据集列表data(CO2)#载入CO2数据集(来自datasets)library(MASS)#载入packageMASSdata(package=MASS)#查看MASS中数据集data(SP500,package=MASS)#载入MASS中的SP500数据集,也可简化为data(SP500)#2.1.2getwd()#返回当前工作目录,C:/Users/DELL/Documentssetwd(d:/data)#也可以写成setwd(d:\\data)“/”或“\\”getwd()#返回当前工作目录d:/dataread.table(file,header=FALSE,sep=””,quote=”\”,dec=”.“,col.name,as.is=!stringsAsFactors,na.strings=”NA”,skip=0,strip.white=FALSE,blank.lines.skip=TRUE,comment.char=”#”)dec#设置用来表示小数点的字符;row.names#向量的行名,默认为1,2,3.。。na.strings#赋给缺数据的值(NA)skip#开始读取数据前跳过的数据文件行数(一般为标题行)strip.white#(是否消除空白字符)blank.lines.skip#(是否跳过空白行)data=read.table(d:/data/salary.txt,header=T)#读取数据,没有事先设定工作目录时data=read.table(salary.txt,header=T)#出现缺失值会报错,不是有效读取大数据的方法data#显示数据data=read.csv(salary.csv,header=T)#出现缺失值会自动填补NA一种更灵活的指令---函数scan()scan(file=””,what=double(),nmax=-1,n=-1,sep=””,skip=0,nlines=0,na.strings=”NA”....))scan()函数中如果不加参数,可以手动输入数据;scan()函数不存在header参数what--指定要读取的数据类型,支持logical,integer,numeric,complex,character,raw,listdata2=scan(salary.txt,skip=1,what=list(City=,Work=0,Price=0,Salary=0))#说明要创建列表,指定了列表中的对象名称,指定city是字符型,其他是数值型变量。#由于不存在header参数,skip=1说明读取时跳过表示名称的第一行data2mode(data)#显示对象类型;[1]listnames(data)#显示对象中的标签;[1]CityWorkPriceSalarydim(data)#显示对象的维数;[1]154#要显示列表中的变量需要使用符号$,attach()简化data$Salary#注意区分大小写attach(data)Salarydetach(data)Salary#2.1.3读取固定宽度格式的文件read.fwf()#read.fwf()通过widths参数指定一个向量c()来设置各个字段的宽度,小数点占一个字符data.fwf=read.fwf(d:/data/fwf.txt,widths=c(2,4,4,3),col.names=c(W,X,Y,Z))data.fwf#2.1.4data.excel=read.delim(clipboard)#clipboard即剪切板mode(data.excel);dim(data.excel)#RODBC提供R和各类数据库的一个接口,其中获取Excel连接的函数是odbcConnectExcel()和odbcConnectExcel2007(),分别用来读取Excel2003版(扩展名为.xls)和2007版(.xlsx)。install.packages(RODBC)library(RODBC)channel=odbcConnectExcel2007(d:/data/Salary.xlsx)#获取Excel连接sqlTables(channel)#列出excel中的表格#获取Sheet1中的数据,可以使用如下的任意一种方式data.excel2=sqlFetch(channel,Sheet1)#直接获取data.excel2=sqlQuery(channel,select*from[Sheet1$])#使用SQL语句获取close(channel)#关闭ODBC连接,释放空间mode(data.excel2);dim(data.excel2)#2.1.5odbcDataSources()#查看可用的数据源#通过RMySQL/DBI读取数据库library(RMySQL)#同时也会加载DBI程序包con=dbConnect(MySQL(),user=”root”,password=”111111”,dbname=test)#打开一个MySQL数据库的连接table.names=dbListTables(con)#数据库中的表名存入table.names,方便查看field.names=dbListFeilds(con,”students”)#列出表students中的字段dbReadTable(con,”students”)#获得并列出整个表dbSendQuery(con,“SETNAMESgbk”)#传送查询,说明用什么字符集来获取数据库字段,gbk或utf8要与之前设置的保持一致。query=dbSendQuery(con,“select*fromstudentsorderbyage”)fetch(query)#显示以年龄排序的查询结果dbRemoveTable(con,”students”)#删除表(删除成功后显示逻辑值TRUE)dbDisconnect(con)#关闭连接#通过RJDBC读取数据库library(RJDBC)help(JDBC)drv=JDBC(com.mysql.jdbc.Driver,/etc/jdbc/mysql-connector-java-3.1.14-bin.jar,`)conn=dbConnect(drv,jdbc:mysql://localhost/test)dbListTables(conn)#列出数据库中的表dbGetQuery(conn,selectcount(*)fromiris)#执行查询#2.1.6readHTMLTable()读取网页数据#readHTMLTable(doc,header=NA,colClasses=NULL,skip.rows=integer(),trim=TRUE,elFun=xmlValue,as.data.frame=TRUE,which=integer(),....)doc--HTML文件或URL(网页网址);header--若为逻辑值,表示是否包含列标签;若为字符向量,则为列名称赋值;colClasses--一个列表或向量,指定表中的格列数据的类型,interger,numeric,logical,character;skip.rows--指定要忽略的行;trim--逻辑值,表示是否要删除开头和结尾的空白单元格;which--整数向量,表示返回网页中的哪几个表格。install.packages(XML)#安装解析XML的包library(XML)baseURL=存入网址,网页数据如下table=readHTMLTable(baseURL,header=TRUE,which=1)mode(table);dim(table)#查看table的类型和数据维度[1]list[1]47head(table,2)#查看列表table前两行的数据,出现乱码,需要对变量名重新赋值names(table)=c(类别,成交量,成交金额,总市值,流通市值,上市公司,平均市盈率)#给变量名重新赋值table$类别=c(沪市,深市,中小板,创业板)#给第一个变量“类别”重新赋值head(table,2)#查看列表前两行数据u==readHTMLTable(readLines(u),which=3,header=TRUE)dim(James)James[1:5,1:10]#查看前5年的数据,取其中前10个变量#2.1.7load(d:/data/salary.Rdata)head(data,5)#显示数据框前5行的记录#2.1.8library(foreign)data.spss=read.spss(d:/data/salary2.sav,to.data.frame=T)#data.spss读入后为数据框变量dim(data.spss)library(Hmisc)data.spss2=spss.get(,d:/data/salary.sav)company=read.xport(d:/data/company.xpt)head(company)companycompany1=sasxport.get(d:/data/company.xpt)#2.2.1#函数cat()是导出数据的基础,可以在屏幕上输出对象,可以输出成文件#cat(...,file=”“,sep=””,fill=FALSE,labels=NULL,append=FALSE)#file--要输出的文件名,appen=TRUE--在指定文件末尾追加内容;#cat()可以连接多个字符串,可以连接字符串和数值向量等不同类型的对象;cat(c(AB,C),c(E,F),n,sep=)#在屏幕上输出ABCEFni=1:5cat(i=,i,n,sep=,)#以逗号为分隔符,在屏幕上输出i=,1,2,3,4,5,ncat(c(AB,C),c(E,F),file=d:/data/cat.txt,sep=.)#向指定文件写入数据readLines(d:/data/cat.txt)#以行的形式读取文本i=1:5cat(i,file=d:/data/cat.txt,append=TRUE)readLines(d:/data/cat.txt)a=file(d:/data/cat.txt)cat(1234,2357,11131517,file=a,sep=\n)#分隔符sep=\n表示换行read.table(a)#2.2.2write.csv(data,file=d:/data/salary1.csv,row.names=F,quote=F)#row.names=F为左图data.csv=read.csv(d:/data/salary1.csv)#保存文本文件dim(data.csv)read.table()和write.table()相当于两个互逆函数data=read.table(“d:/data/salary.txt”,header=T)write.table(data,file=”d:/data/salary1.txt”,col.names=T,quote=F)#保存为文本格式#2.2.3save(data,file=d:/data/salary1.Rdata)#保存R格式文件load(d:/data/salary.Rdata)#2.2.4library(foreign)write.foreign(data,datafile=d:/data/salary.sav,codefile=d:/data/code.txt,package=SPSS)#保存为sav文件格式

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功