第3章 R语言数据读写教学课件R语言数据分析与挖掘.pptx
-
资源ID:90819601
资源大小:2.24MB
全文页数:18页
- 资源格式: PPTX
下载积分:10金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
第3章 R语言数据读写教学课件R语言数据分析与挖掘.pptx
第3章 R语言数据读写教学课件R语言数据分析与挖掘目录PAGE文本文件读写012Excel文件读写02数据库文件读写03PAGE3R语言数据读写R语言提供了众多扩展包来读取不同来源的数据文件,如快速读入文本文件的readr包、读取excel文件数据的readxl包、读取大数据集的data.table包等。R语言常用于读取不同来源数据的函数如下:3R语言数据分析与挖掘(微课版)PAGE文本文件读写401PAGE5Base包read.table()函数可以轻松地将csv/txt等文本文件导入到R语言中,并将结果存储在一个数据框中。有几个与read.table类似的函数,可以快速读入不同类型的文本文件。read.csv()函数分割符默认设置为逗号,并假设数据有标题行,是读入csv文件的首选函数。read.csv2()函数则使用逗号作为小数位,并用分号作为分隔符。read.delim()和read.delim2()分别使用句号或逗号作为小数位,用换行符(t)作为分隔符。参数描述file要读取的数据文件名称,文件如果不在当前文件夹路径下,需添加绝对路径header逻辑值,导入文件是否有标题行,默认为FALSE,不含有标题行,设置为TRUE则将文件第一行作为变量的标题sep文件中字段的分隔符,默认为sep=”,表示分隔符为一个或多个空格、制表符、换行或回车quote设置如何引用字符型变量。默认情况下,字符串可以被引号”或括起,如果没有设定分割字符,引号前面加,即quote=”dec设置用来表示小数点的字符,默认为.row.names读入数据的行名,默认为1,2,3,col.names读入数据的列名,如header设置为FALSE时,默认为V1,V2,V3,na.strings赋给缺失值的值,默认为NAskip开始读取数据前跳过的数据文件的行数strip.white是否消除空白字符blank.lines.skip是否跳过空白行5R语言数据分析与挖掘(微课版)PAGE6readr包接下来,将学习如何利用功能强大的readr扩展包进行文本文件的读写。首次使用之前,请先运行install.packages(“readr”)命令进行在线安装。read_csv()函数将数据文件读入R语言,并保存为tibble类型。tibble类型是R语言中用来替换data.frame的扩展数据框,tibble类型与data.frame类型有相同的语法,使用起来更方便。参数参数描述描述file要读取的数据文件名称,数据文件如果不在当前路径下,需添加绝对路径col_names逻辑值或列名的特征向量。如果TRUE,输入第一行将作用作列名,如果FALSE,列名将自动生成X1,X2,X3,,如是字符向量,向量值将作为列名称col_types指定列的数据类型,为NULL时会自动识别na赋给缺失值的字符向量quoted_na判断引号内的缺失值为缺失值(缺省值)或字符串comment用于标识注释的字符串trim_ws是否消除空白字符skip读取数据前要跳过的行数n_max要读取的最大记录数,默认为Inf,即无穷大6R语言数据分析与挖掘(微课版)PAGE7Data.table包data.table扩展包是data.frame的升级版,其特点是用于数据框格式数据的处理特点快。体现在以下两个方面:一方面是写入快,代码简洁,只要一行命令就可以完成诸多任务。一方面是处理快,优化了内部处理步骤,使用多线程,甚至很多函数是使用C语言编写,大大加快数据运行速度。因此,在对大数据处理上,无疑首选data.table扩展包。data.table属于扩展包,首次使用前请先通过install.packages(“data.table”)命令进行在线安装。fread()函数用于数据导入:参数参数描述描述input输入的文件,或者字符串(至少有一个n)file文件路径,在确保没有执行shell命令时很有用,也可以在input参数输入sep列之间的分隔符sep2分隔符内再分隔的分隔符dec小数分隔符,默认.nrows读取的行数,默认为全部header第一行是否为列名na.stringsNA值的处理stringsAsFactors是否转化字符串为因子verbose是否交互和报告运行时间skip跳过读取的行数,为1则从第二行开始读取select需要保留的列名或者列号,剔除剩余列drop需要剔除的列名或者列号,读取剩余列 colClasses指定数据类型integer64读如64位的整型数col.names变量(列)的可选名称向量check.names默认FALSE;为TRUE时data.table会检查变量名称,以确保它们是语法上有效的变量名称encoding默认unknown,其他可能UTF-8或者Latin-1,不是用来重新编码,而是允许在本机处理的编码字符串strip.white默认TRUE,删除结尾空白符;如果FALSE,只删除标题尾随空格fill默认FALSE,如果TRUE,不等长的区域可以自动填上,将利于文件顺利读入blank.lines.skip默认FALSE,如果TRUE,跳过空白行key设置key,用一个或多个列名,会传递给setkeyshowProgressTRUE会显示脚本进程 data.table如果TRUE返回data.table,如果FALSE返回data.frame7R语言数据分析与挖掘(微课版)PAGEExcel文件读写802PAGE9xlsx包xlsx扩展包的安装需要依赖rJava扩展包,rJava能否成功安装的前提条件是需要本机预先安装好java,且R语言须与jre的版本位数一致。丰富的函数,能对Excel文件进行灵活读写。主要函数如下:函数函数用途用途write.xlsx()将R语言中数据框写入Excel文件,可向已存在文件追加工作表,同时定义表名,也支持中文表名read.xlsx()读取Excel文件loadWorkbook()将Excel文件载入R中作为对象saveWorkbook()可将修改过的内容保存到Excel文件getSheets()读取R语言中Excel对象的工作表,返回java对象createSheet()在Excel文件中新建工作表removeSheet()删除Excel文件中的工作表9R语言数据分析与挖掘(微课版)PAGE10 xlsx包参数参数描述描述x需要写入到Excel工作簿中的数据框file输出文件的路径sheetName保存到工作簿中的工作表名,默认为Sheet1 col.names逻辑值,保存文件中是否含有列名,默认为TRUErow.names逻辑值,保存文件中是否含有行名称,默认为TRUEappend逻辑值,是否将x追加到现有文件中,默认为FALSEshowNA逻辑值,默认为FALSE,如果设置为TRUE,则NA值保留为空单元格write.xlsx()函数参数参数描述描述fileExcel文件的路径sheetIndex工作薄中的工作表的索引值sheetName工作表名rowIndex数值向量,表示想提取的行。如为空,且未指定startRow和endRow,则提取所有行startRow数值,读取的起点行。仅当参数rowIndex为NULL时有效endRow数值,读取的终点行。如设为NULL,则读取所有行,仅当参数rowIndex为NULL时有效colIndex数值向量,表示想提取的列。如为空,则提取所有的列as.data.frame布尔值,是否强制转换为data.frame。如FALSE,则用列表表示,每个元素为一列header布尔值,是否将第一行识别为标题keepFormulas布尔值,是否以文本格式保留Excel公式read.xlsx()函数10R语言数据分析与挖掘(微课版)PAGE11XLConnect包XLConnect是R语言另一个用于处理Excel文件的扩展包。利用它可以读取或创建一个Microsoft Excel文件,还可以直接对Excel文件进行数据处理,数据标记以及数据可视化。XLConnect扩展包可以通过install.packages(“XLConnect”)命令进行在线安装。函数用途loadWorkbook()加载/创建Excel工作薄createSheet()在指定为object参数的工作簿中创建一个选定名称的工作表writeWorksheet()将数据写入Excel工作簿对象的工作表createName()为工作簿中的指定公式创建名称writeNamedRegion()将命名范围写入工作簿saveWorkbook()将工作簿对象保存到相应的Excel文件并将文件写入磁盘writeWorksheetToFile()允许在调用中将数据写入Excel文件的工作表中readWorksheet()允许从当前加载的工作薄对象中读取指定工作表的数据readWorksheetFromFile()从Excel文件中读取工作表中的数据readNamedRegion()从工作簿对象中读取命名区域readNamedRegionFromFile()从Excel文件中读取命名区域createSheet()在工作薄中创建新的工作表对象getSheets()查询工作薄对象中可用的工作表existsSheet()判断工作薄对象中是否存在指定的工作表removeSheet()从工作薄对象中删除工作表renameSheet()对工作薄对象中的工作表进行重命名11R语言数据分析与挖掘(微课版)PAGE12openxlsx包openxlsx扩展包使用Rcpp编写,数据读写性能会优于xlsx和XLConnect扩展包。对Excel文件的读取、创建、修改及保存等函数更加简单易懂。最重要的是openxlsx扩展包消除对Java的依赖,让初学者能轻松安装及使用该包。函数用途loadWorkbook()将Excel文件载入R中作为对象createWorkbook()创建新的工作薄对象saveWorkbook()将工作簿对象保存到相应的Excel文件并将文件写入磁盘sheets()返回工作表名称addWorksheet()在指定为object参数的工作簿中创建一个选定名称的工作表renameWorksheet()对工作簿对象的工作表重命名removeWorksheet()移除工作薄的工作表writeData()将数据写入工作簿对象的工作表deleteData()删除单元格数据write.xlsx()将R语言中的数据框/列表写入到Excel文件中read.xlsx()读取Excel文件或工作簿对象的数据12R语言数据分析与挖掘(微课版)PAGE13readxl包readxl扩展包提供了将Excel文件数据读入R语言中的函数,函数基于C+编写,读取数据速度要优于前面介绍过的其他包。最重要的是,它不依赖其他rJava包和外部程序,能够在所有操作系统中都方便使用。readxl扩展包可以读取.xls和.xlsx格式的Excel文件。readxl扩展包函数不多,最常用的分别为excel_sheets()和read_excel()函数,前者用来读取Excel文件中的工作表名称,后者用来读取Excel工作表的数据。13R语言数据分析与挖掘(微课版)PAGE数据库文件读写1403PAGE15数据库文件读写R语言中有多种面向关系型数据库管理系统(DBMS)的接口,包括SQL Server、Access、MySQL、Oracle、DB2等。其中一些扩展包通过原生的数据库驱动来提供访问功能,另一些则是通过ODBC或JDBC来实现访问。使用R语言来访问存储在外部数据库中的数据是一种分析大数据集的有效手段,并且能够发挥SQL和R语言各自的优势。以下是这两种方式的概述:一种方式是依赖RODBC扩展包,该包使用开放数据库连接(Open Database Connectivity,ODBC)驱动作为一种连接到DBMS的方法,这就要求用户必须先安装和配置必要的驱动程序,然后才能在R语言中使用它。该组件提供了一套通用方法,利用同一组函数来管理不同类型的数据库。该方法不足的一面是,它依赖在R语言运行的平台上是否有能与特定DBMS类型配套的ODBC驱动程序。另一种方式是使用DBI(R Special Interest Group on Databases 2013)的组件,例如RMySQL、ROracle、RPostgreSQL和RSQlite。通过它建立到特定DBMS的“本地”链接。DBI组件定义了虚拟函数,用于实现针对特定数据库的组件的具体操作。15R语言数据分析与挖掘(微课版)PAGE16RODBC包将RODBC包载入后运行odbcConnect()函数建立与数据库的连接,就开展后续的数据传输及分析工作。看到以上信息说明已经完成R语言与数据库的连接,可通过odbcGetInfo()函数查看更详细的数据库信息。library(RODBC)channel channelRODBC Connection 1Details:case=tolower DSN=daniel UID=root odbcGetInfo(channel)DBMS_Name DBMS_Ver Driver_ODBC_Ver MySQL 5.6.21-log 03.80 Data_Source_Name Driver_Name Driver_Ver daniel myodbc5a.dll 05.03.0004 ODBC_Ver Server_Name 03.80.0000 localhost via TCP/IP16R语言数据分析与挖掘(微课版)PAGE17RODBC包现在想把R语言中的mtcars数据集保存到MySQL中,可以通过sqlSave()函数实现。第一个参数channel是建立的链接;第二个参数dat是指R中的数据框;第三个参数tablename是指保存到MySQL中的表名;第四个参数append是逻辑值,默认为FALSE表示建立新表(如果表名已经存在则会报错),TRUE表示在已有表中插入新数据。此时在MySQL的test数据库中已经存在mydata表。我们在R语言中利用sqlFetch()和sqlQuery()函数进行MySQL表的提取和SQL语句查询。使用sqlQuery()函数可以执行更复杂的SQL语句,完成多表查询或数据统计工作。甚至可以在R语言中利用sqlDrop命令将MySQL中的表mydata删除。最后,当不再需要用R语言操作数据库时,请记得通过odbcClose()函数关闭连接,释放资源。sqlSave(channel,mtcars,mydata,append=FALSE)#将mtcars表写入MySQL中17R语言数据分析与挖掘(微课版)PAGE18RMySQL包RMySQL扩展包的安装非常简单,不需要配置ODBC数据源管理器,只需要在R语言中通过install.packages(“RMySQL”)语句进行安装。安装完成后,使用dbConnect()函数建立R语言与MySQL数据库的连接。此时已建立连接,可以通过dbGetInfo()函数查看详细的信息。通过dbListTables()函数可以查看连接数据库中的表名,查询结果与直接在MySQL中运行show tables;命令相同。利用dbWriteTable()函数将R语言中的数据框写入到MySQL中。可通过dbListFields()函数查看mydata表的字段。可通过dbReadTable()或dbGetQuery()函数进行MySQL表的提取或SQL语句查询。当不需要连接时,也记得使用dbDisconnect()函数断开R语言与MySQL的连接。library(RMySQL)conn conn18R语言数据分析与挖掘(微课版)