您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 45分钟搞定R语言之数据库交互及统计绘图
王显峰wxf0701@msn.com@msn.com@msn.com目录R数据库交互R语言与数据库通过RODBC进行数据存取R统计绘图R语言与统计绘图R的高水平绘图函数R的常用绘图参数R的低水平绘图函数组合多个图形高级格函数(LatticeFunction)小结王显峰wxf0701@msn.com@msn.com与数据库:各有所长、取长补短统计分析统计图形数据的组织数据的存储数据的管理RODM、teradataR、Rhive……王显峰wxf0701@msn.com@msn.com与数据库:两种连接方式ODBC(OpenDataBaseConnectivity),开放式数据库连接大部分计算机都有(Windows/Linux/MacOSX)支持多种数据源(Oracle、MySQL、DB2、SQLSever……)需要建立一个DSN(DataSourceName)或数据源的名称(控制面板-〉系统和安全-〉管理工具-〉数据源(ODBC))DBI(DataBaseInterface)方式:ROracle、RMysql……需要针对特定的数据库下载专门的软件包比ODBC方式表现更好目前对Windows平台支持不好王显峰wxf0701@msn.com@msn.com目录R数据库交互R语言与数据库通过RODBC进行数据存取R统计绘图R语言与统计绘图R的高水平绘图函数R的常用绘图参数R的低水平绘图函数组合多个图形高级格函数(LatticeFunction)小结王显峰wxf0701@msn.com@msn.com(dsn,uid=,pwd=)建立并打开连接sqlFetch(channel,sqtable)从数据库读取数据表,并返回一个数据框对象sqlQuery(channel,query)向数据库提交一个查询,并返回结果sqlSave(channel,mydf,tablename=sqtable,append=FALSE)将一个数据框写入或更新(append=True)到数据库sqlDrop(channel,sqtable)从数据库删除一个表sqlClear(channel,sqtable)删除表中的内容sqlTables(channel)返回数据库中表的信息sqlColumns(channel,sqtable)返回数据库表sqtable列的信息close(channel)关闭连接通过RODBC进行数据存取:主要函数操作步骤:建立DSN——〉打开连接——〉数据操作——〉关闭连接R通过RODBC方式进行数据存取的主要函数如下:王显峰wxf0701@msn.com@msn.com进行数据存取:读取数据示例:通过RODBC从Oracle读取数据##加载RODBC包library(RODBC)##创建连接channel-odbcConnect(BITEST,uid=dw,pwd=dw)##执行查询org1-sqlFetch(channel,'DIM.DIM_ORGANIZATION')org2-sqlQuery(channel,'SELECT*FROMDIM.DIM_ORGANIZATION')##关闭连接odbcClose(channel)##使用数据head(org1)head(org2)王显峰wxf0701@msn.com@msn.com进行数据存取:写入数据库示例:通过RODBC将数据写入Oraclelibrary(RODBC)channel-odbcConnect(BITEST,uid=dw,pwd=dw)##创建数据框(待写入对象)mydata-sqlQuery(channel,'SELECT*FROMDIM.DIM_ORGANIZATION')##写入数据库表,并读取结果表sqlSave(channel,mydata,'NEW_TABLE_NAME',append=FALSE)mydata2-sqlQuery(channel,'SELECT*FROMNEW_TABLE_NAME')##更新数据库表,并读取数据sqlSave(channel,mydata,'NEW_TABLE_NAME',append=TRUE)mydata3-sqlQuery(channel,'SELECT*FROMNEW_TABLE_NAME')##删除刚刚建立的表NEW_TABLE_NAMEsqlDrop(channel,'NEW_TABLE_NAME')odbcClose(channel)##查看执行结果head(mydata,n=30);head(mydata2,n=30);head(mydata3,n=30)王显峰wxf0701@msn.com@msn.com目录R数据库交互R语言与数据库通过RODBC进行数据存取R统计绘图R语言与统计绘图R的高水平绘图函数R的常用绘图参数R的低水平绘图函数组合多个图形高级格函数(LatticeFunction)小结王显峰wxf0701@msn.com@msn.com图形的首要作用是“直观”的展示信息,但是“直观”不等于“简单”,统计量才是统计图形的最关键构成元素。MicrosoftExcel价格高!展示的几乎都是原始数据!不能灵活的控制图形的组成元素!其他商业统计软件价格昂贵!不能灵活的控制图形的组成元素!R:isafreesoftwareenvironmentforstatisticalcomputingandgraphics完全免费!任何理论上可以计算出来的统计量都能在R中很方便地以图形的方式表达出来!可以灵活的控制图形的组成元素!R与统计绘图:工具选择王显峰wxf0701@msn.com@msn.com任何一幅统计图形都是由以下这些最基础的图形元素构成•点(points)•线(lines,abline,segments,arrows)•多边形(rect,polygon,box)•颜色(colors)•文本(text)•图例(legend)R与统计绘图:图形的最基础构成元素王显峰wxf0701@msn.com@msn.com高水平(high-level)绘图函数•在图形设备上产生一个新的绘图区域,并生成一个新的图形•通过其参数可以设置坐标轴,标签,标题等等低水平(low-level)绘图函数•在已存在的图形上加上更多的图形元素,是绘制图形的基础函数•如额外的点、线、多边形和标签交互式绘图函数•允许交互式地用定点设备(如鼠标)在已经存在的图上添加/提取图形信息R与统计绘图:绘图函数的分类王显峰wxf0701@msn.com@msn.com目录R数据库交互R语言与数据库通过RODBC进行数据存取R统计绘图R语言与统计绘图R的高水平绘图函数R的常用绘图参数R的低水平绘图函数组合多个图形高级格函数(LatticeFunction)小结王显峰wxf0701@msn.com@msn.com()是最常用R绘图函数,是一个泛型函数,它产生的图形依赖于第一个参数的类型或者类##测试数据set.seed(1);x-sample(c(1:50),10)set.seed(2);y-sample(c(1:50),10)xt-ts(x)xy-cbind(x,y)f-as.factor(c(rep('a',3),rep('b',5),rep('c',2)))R的高水平绘图函数:plot()调用示例调用描述plot(x)x是一个向量,绘制向量x的值对其索引的图plot(xt)xt是一个时间序列对象,绘制xt的时间序列图plot(f)f是一个因子,绘制f的条形图plot(x,y)x,y是一个向量,绘制y对x的散点图plot(xy)xy是一个矩阵,绘制y对x的散点图plot(f,y)f是一个因子,y是一个向量,绘制y在f的各水平下的盒图更多参见:methods(plot)高水平绘图函数的更多示例参加:example(plot)example(barplot)等等王显峰wxf0701@msn.com@msn.com点图(Clevelanddotplot)/克里夫兰点图:##基本实现,可用于检测离群点dotchart(mtcars$mpg,labels=row.names(mtcars),cex=.7,main=GasMilageforCarModels,xlab=MilesPerGallon)##按mpg进行排序,按cylinder进行分组并设定不同的颜色,可用于确定聪明变量x-mtcars[order(mtcars$mpg),]#sortbympgx$cyl-factor(x$cyl)#itmustbeafactorx$color[x$cyl==4]-redx$color[x$cyl==6]-bluex$color[x$cyl==8]-darkgreendotchart(x$mpg,labels=row.names(x),cex=.7,groups=x$cyl,main=GasMilageforCarModels\ngroupedbycylinder,xlab=MilesPerGallon,gcolor=black,color=x$color)R的高水平绘图函数:点图dochart()王显峰wxf0701@msn.com@msn.com线图(LineChart):##基本实现,仅仅使用plot()plot(mtcars$mp
本文标题:45分钟搞定R语言之数据库交互及统计绘图
链接地址:https://www.777doc.com/doc-4261707 .html