R语言实战第二章代码.doc_第1页
R语言实战第二章代码.doc_第2页
R语言实战第二章代码.doc_第3页
R语言实战第二章代码.doc_第4页
R语言实战第二章代码.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#2.1.1data() #查看数据集列表data(CO2) #载入CO2数据集(来自datasets)library(MASS) #载入package MASSdata(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=”.“, , as.is=!stringsAsFactors, na.strings=”NA”,skip=0, strip.white=FALSE, blank.lines.skip=TRUE,comment.char=”#”)dec #设置用来表示小数点的字符;s #向量的行名,默认为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 City Work Price Salarydim(data) #显示对象的维数;1 15 4#要显示列表中的变量需要使用符号$,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),s=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*fromSheet1$) #使用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数据库的连接s=dbListTables(con) # 数据库中的表名存入s,方便查看s=dbListFeilds(con,”students”) # 列出表students中的字段dbReadTable(con,”students”) #获得并列出整个表dbSendQuery(con, “SET NAMES gbk”) #传送查询,说明用什么字符集来获取数据库字段,gbk或utf8要与之前设置的保持一致。query=dbSendQuery(con, “select * from students order by age”)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, select count(*) from iris) #执行查询#2.1.6 readHTMLTable()读取网页数据#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=/center/stock.html #存入网址,网页数据如下table=readHTMLTable(baseURL,header=TRUE,which=1)mode(table);dim(table) #查看table的类型和数据维度1 list1 4 7head(table,2) #查看列表table前两行的数据,出现乱码,需要对变量名重新赋值names(table)=c(类别,成交量,成交金额,总市值,流通市值,上市公司,平均市盈率) #给变量名重新赋值table$类别=c(沪市,深市,中小板,创业板) #给第一个变量“类别”重新赋值head(table,2) #查看列表前两行数据u=/players/j/jamesle01.htmlJames=readHTMLTable(readLines(u), which=3, header=TRUE)dim(James)James1: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(1 2 3 4 ,2 3 5 7,11 13 15 17, file=a, sep=n) #分隔符sep=n表示换行read.table(a)#2.2.2write.csv(data,file=d:/data/salary1.csv,s=F,quote=F) #s=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,f

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论