R软件及编程应用第四讲报告课件.ppt

上传人(卖家):晟晟文业 文档编号:5101764 上传时间:2023-02-11 格式:PPT 页数:91 大小:1.46MB
下载 相关 举报
R软件及编程应用第四讲报告课件.ppt_第1页
第1页 / 共91页
R软件及编程应用第四讲报告课件.ppt_第2页
第2页 / 共91页
R软件及编程应用第四讲报告课件.ppt_第3页
第3页 / 共91页
R软件及编程应用第四讲报告课件.ppt_第4页
第4页 / 共91页
R软件及编程应用第四讲报告课件.ppt_第5页
第5页 / 共91页
点击查看更多>>
资源描述

1、 R软件及编程应用软件及编程应用中南财经政法大学信息与安全工程学院刘树栋 第四讲:数据读写、预处理及字符串操作第四讲:数据读写、预处理及字符串操作 一、数据读写一、数据读写 二、数据预处理二、数据预处理 三、字符串操作三、字符串操作一、数据读写一、数据读写 1、连接连接键盘与键盘与显示器显示器 2、读写文件、读写文件 3、连接数据库、连接数据库 4、从、从Hadoop中获取数据中获取数据 1 1、连接键盘与显示器、连接键盘与显示器 R语言中提供了多种多样的输入语言中提供了多种多样的输入(I)/输出输出(O)功能。功能。R提供了多个命令来连接键盘和显示器,包括提供了多个命令来连接键盘和显示器,包

2、括scan()、read line()、print()和和cat()。u(1)使用使用scan()函数:使用函数:使用scan()函数可从文件中读取函数可从文件中读取或从键盘输入一个向量,可以是数值型或字符型向量,或从键盘输入一个向量,可以是数值型或字符型向量,甚至可读取数据来形成一个列表。甚至可读取数据来形成一个列表。函数功能描述:函数功能描述:read data into a vector or list from the console or file 函数定义形式:函数定义形式:参数说明参数说明(1):l file 从文件中读取数据时,引号中输入文件路径。从文件中读取数据时,引号中输入

3、文件路径。从键从键盘中输入时,此参数为空。盘中输入时,此参数为空。l what 默认情况下声明读入为字符型数据。还可设置读入默认情况下声明读入为字符型数据。还可设置读入数据的精度数据的精度/类型,例如类型,例如what=integer(0),what=numeric(0),what=character(0)。如果读入数据有字符。如果读入数据有字符和数值,可用和数值,可用what=“”来声明,则会把读入的数值隐式来声明,则会把读入的数值隐式的转换成字符。的转换成字符。l sep 指定各个读入数据之间的分隔符,默认情况下为空指定各个读入数据之间的分隔符,默认情况下为空白字符,包括空格、回车、换行符

4、白字符,包括空格、回车、换行符/tab和水平制表符。和水平制表符。参数说明参数说明(2):l 还可通过还可通过list 指定读入变量的变量名,同时生成的对象为指定读入变量的变量名,同时生成的对象为列表,此时可以同时读入字符和数值。列表,此时可以同时读入字符和数值。l skip从第几行开始读入数据。从第几行开始读入数据。l nlines指定最大读入行数。指定最大读入行数。l 如果通过键盘输入时,不希望出现下标提示,则可以使如果通过键盘输入时,不希望出现下标提示,则可以使用用quiet=TRUE。l encoding=“”指定编码格式,有时候读入中文可能出现指定编码格式,有时候读入中文可能出现乱码

5、,可通过此参数指定:乱码,可通过此参数指定:Latin-1或或UTF-8 注意事项:注意事项:用于读入纯字符或数字,没有表头。用于读入纯字符或数字,没有表头。如果输入单一类型的向量,例均为字符,用如果输入单一类型的向量,例均为字符,用scan函数效函数效率更高。率更高。默认情况下用默认情况下用scan函数读入的数据生成向量类型。函数读入的数据生成向量类型。举例:键盘输入举例:键盘输入 命令行在每行行命令行在每行行 首提示的数字是首提示的数字是 下一个输入项的下一个输入项的 索引。索引。键入一个空行表键入一个空行表示结束输入示结束输入 举例:读取文件举例:读取文件 u(2)使用)使用readli

6、ne()函数:读取从键盘中输入的单行数函数:读取从键盘中输入的单行数据。据。函数功能描述:函数功能描述:reads a line from the terminal 使用说明:一般调用使用说明:一般调用readline时可以指定一个提示语字时可以指定一个提示语字符串作为参数,为用户提示要输入的内容。这个参数是符串作为参数,为用户提示要输入的内容。这个参数是可选的。可选的。readline()与与readLines()是两个不同的函数是两个不同的函数。举例举例 思考:从输出结果的角度,scan和readline的区别?u(3)使用)使用print()在在交互模式的顶层,只需要简单键入变量名或者表

7、达交互模式的顶层,只需要简单键入变量名或者表达式,就能输出变量或表达式的式,就能输出变量或表达式的值。值。print()函数:在非交互模式下,例如在函数体内部打函数:在非交互模式下,例如在函数体内部打印变量或表达式的值,上述方法就行不通。此时印变量或表达式的值,上述方法就行不通。此时print()函数就派上用场了。函数就派上用场了。print()函数可带一个参数函数可带一个参数digits=参数指定每个数输出参数指定每个数输出的有效数字位数,的有效数字位数,print.gap=参数,用来指定矩阵或参数,用来指定矩阵或数组输出时列之间的间距。数组输出时列之间的间距。u(4)使用)使用cat()函

8、数函数。cat()函数:比函数:比print()函数稍微好用一点,因为后者只可函数稍微好用一点,因为后者只可输出一个表达式,而且输出内容自带编号,这可能会造输出一个表达式,而且输出内容自带编号,这可能会造成干扰。成干扰。cat()函数定义形式:函数定义形式:使用说明:使用说明:l cat()函数可把多个参数连接起来在输出,具有函数可把多个参数连接起来在输出,具有paste()功功能。能。l 使用使用cat()函数时需要一个行结束字符函数时需要一个行结束字符“n”,如果没有,如果没有,输入提示符,输入提示符“”不会换行。不会换行。l 默认情况下打印各个参数以空格分开。即默认情况下打印各个参数以空

9、格分开。即sep=“”的设的设置。还可以设置各种字符,如置。还可以设置各种字符,如“n”,来分隔各个输出参,来分隔各个输出参数,或不设如何分隔:数,或不设如何分隔:sep=“”。此外也可以把。此外也可以把sep设置设置为字符串向量。为字符串向量。u举例举例 2 2、读写文件、读写文件 一般把文本文件定义为由一般把文本文件定义为由ASCII 字符或其他人类语言的编码字符或其他人类语言的编码(如中文的(如中文的GB编码)构成的文件。其中用换行符表示文本编码)构成的文件。其中用换行符表示文本内部的行间隔。内部的行间隔。R提供了多个读写文件的函数,包括提供了多个读写文件的函数,包括readLines(

10、)、read.table()、read.fwf()、write.table()、writeLines()等。等。u(1)使用使用read.table()函数:将文本文件函数:将文本文件(如表格类的数如表格类的数据据)读入读入R,生成数据框对象。,生成数据框对象。函数功能描述:函数功能描述:reads a file in table format and creates a data frame from it,with cases corresponding to lines and variables to fields in the file.函函数数定定义义形形式式:参数说明参数说明(1

11、):l file:指定读入的文件或文件路径。:指定读入的文件或文件路径。l header:是否读入列名,默认是不读入。:是否读入列名,默认是不读入。l sep:用来指定分隔符,读入的数据要求有规则的分隔符:用来指定分隔符,读入的数据要求有规则的分隔符,如空格、,如空格、TAB、换行符、回车符等。、换行符、回车符等。l as.is:读入的字符是否转换成因子,默认所有读入的字:读入的字符是否转换成因子,默认所有读入的字符都转换成因子。符都转换成因子。l calClasses:指定类的数据类型的格式。:指定类的数据类型的格式。l stringAsFactors=是否字符转换成因子,默认是是否字符转换

12、成因子,默认是TRUE 参数说明参数说明(2):l row.names=c()指定各行的名称指定各行的名称l col.names=c()指定列的名称,如果读入的文件没有表头指定列的名称,如果读入的文件没有表头,可以指定。,可以指定。l skip=N从文件的第几行开始读入数据。从文件的第几行开始读入数据。l Nrows=N 读入的行数。读入的行数。l na.string=c()指定什么样的字符表示缺失值。指定什么样的字符表示缺失值。l comment.char=指定评论的开始字符。默认是指定评论的开始字符。默认是#。l dec=指定小数点数指定小数点数l encoding=指定编码规则。指定编码

13、规则。参数说明参数说明(3):R中还有一系列基于中还有一系列基于read.table函数的不函数的不同选项的函数同选项的函数函数函数headersepquotedecfillComment.charread.tableFALSE”或或.!blank.lines.skip#read.csvTRUE,”.TRUEread.csv2TRUE;”,TRUEread.delimTRUEt”.TRUEread.delim2TRUEt”,TRUEu举例举例u(2)使用)使用read.fwf()read.fwf()函数适用于读入数据没有相应的分隔符,函数适用于读入数据没有相应的分隔符,但读入的数据字段长度是固

14、定的。但读入的数据字段长度是固定的。数据读入数据读入R后,生成数据框对象。后,生成数据框对象。函数功能描述:函数功能描述:read a table of fixed width formatted data into a data.frame 定义形式:定义形式:参数说明参数说明(1):l file:指定读入的文件或文件路径。:指定读入的文件或文件路径。l header:是否读入列名,默认是不读入。:是否读入列名,默认是不读入。l sep:用于在头部分隔变量名的符号。:用于在头部分隔变量名的符号。l skip=N:表示文件头部要跳过的函数。:表示文件头部要跳过的函数。l row.names=c

15、():设置数据框中行名称。:设置数据框中行名称。l cow.names=c():设置数据框:设置数据框中列名称。中列名称。l n 设置读入设置读入R的行数。的行数。l buffersize:设置一次读入的函数的最大值:设置一次读入的函数的最大值u举例举例u(3)使用)使用readLines()readLines()交互式地数据输入。交互式地数据输入。可以控制读入的数据行数,非批处理。适用于需要逐可以控制读入的数据行数,非批处理。适用于需要逐行处理的大文件。其中行处理的大文件。其中read.table()和和scan()都是把文都是把文件一次性读入内存,当文件非常大时,读一个文件要件一次性读入内

16、存,当文件非常大时,读一个文件要耗费太长时间,这对内存要求也比较高。耗费太长时间,这对内存要求也比较高。返回是一个字符串向量,其中每个值对应文件中的一返回是一个字符串向量,其中每个值对应文件中的一行。行。函数功能描述:函数功能描述:read some or all text lines from a connection 函数定义形式:函数定义形式:参数说明:参数说明:l con:字符串或包含要读取的文件的路径。:字符串或包含要读取的文件的路径。l n:整数值,设置要读取的行数。:整数值,设置要读取的行数。l ok:逻辑值,设置当文件的函数小于:逻辑值,设置当文件的函数小于n时是否要报错。时是

17、否要报错。l Warn:逻辑值,设置当文件没有以:逻辑值,设置当文件没有以EOL结束时是否报错结束时是否报错l Encoding:字符,设置输入文件的编码方式:字符,设置输入文件的编码方式u举例举例 连接连接(connection)的介绍:的介绍:l“连接连接”(connection)是是R中用于多种中用于多种I/O(输入输出)操(输入输出)操作的一个基本的机制,在这里用于读取文件。作的一个基本的机制,在这里用于读取文件。l 连接一般通过调用函数连接一般通过调用函数file()、url()或其他或其他R函数创建。函数创建。应用:打开连接,把结果赋值给变量应用:打开连接,把结果赋值给变量c,然后

18、设定参数,然后设定参数n=1使程序一次只读取文件的一行。当使程序一次只读取文件的一行。当R遇到文件结束符遇到文件结束符(EOF)时,返回一个空值。文件读入结束,关闭连接。时,返回一个空值。文件读入结束,关闭连接。如果需要对每一行的文字进如果需要对每一行的文字进行处理,可以借助于字符串处行处理,可以借助于字符串处理函数,如:理函数,如:strsplit()、substr()nchar()、grep()、regexpr()、sub()、gsub()等等 seak()表示表示“倒带倒带”,即从文,即从文件开始重新读取。件开始重新读取。u(4)使用)使用write.table()R 中还可以将数据对象

19、(通常是数据框或矩阵)导出到文本中还可以将数据对象(通常是数据框或矩阵)导出到文本文件中。文件中。write.table的功能描述:的功能描述:prints its required argument x(after converting it to a data frame if it is not one nor a matrix)to a file or connection.定义形式定义形式 参数说明:参数说明:l x:要导出的对象要导出的对象l file:字符串,用于写入输出的文件名或连接对象:字符串,用于写入输出的文件名或连接对象l append:逻辑值,设置是将输出添加到现有文件

20、的结:逻辑值,设置是将输出添加到现有文件的结尾尾(append=TRUE),还是覆盖这个文件,还是覆盖这个文件(append=FALSE)。l sep:字符,设置一行中分隔值的字符。:字符,设置一行中分隔值的字符。l row.names:逻辑值,设置输出中是否包括行名称。:逻辑值,设置输出中是否包括行名称。l cow.names=c():逻辑值,设置输出中是否包括列名称:逻辑值,设置输出中是否包括列名称u举例:数据框举例:数据框u举例:矩阵。输出矩阵时,需要声明不要列名和行名举例:矩阵。输出矩阵时,需要声明不要列名和行名u(4)使用)使用cat()注释:注释:第一次调用第一次调用cat()时创

21、建文件时创建文件u.txt,并把一行内容,并把一行内容“abc”写入文件,第二次调用追加写入第二行内容写入文件,第二次调用追加写入第二行内容“de”。这个文。这个文件会在每一次操作之后自动保存。件会在每一次操作之后自动保存。还可以写入多个字段。还可以写入多个字段。u(5)使用)使用writeLines()注释:注释:第一次调用第一次调用writeLines()时创建文件时创建文件u.txt,并把一行内容,并把一行内容“w1”、“w2”和和“w3”写入文件,第二次调用追加写入写入文件,第二次调用追加写入第二行内容第二行内容“w4”、“w5”和和“w6”。如果在此文件目录下存在如果在此文件目录下存

22、在u.txt,那么在第一次写入时会覆盖,那么在第一次写入时会覆盖文件中原有的内容。文件中原有的内容。3、连接数据库、连接数据库 4、从、从Hadoop中获取数据中获取数据二、数据预处理二、数据预处理 1、数据合并、数据合并 2、数据转换、数据转换 3、数据分段与子集、数据分段与子集 4、数据汇总、数据汇总 5、数据修整、数据修整 6、数据清洗、数据清洗u为什么要数据预处理?为什么要数据预处理?一个典型的项目中一个典型的项目中80%的精力都花在为分析二进行的发现、清洗的精力都花在为分析二进行的发现、清洗和准备数据上,只有不到和准备数据上,只有不到5%的精力用于分析(剩下的时间都耗的精力用于分析(

23、剩下的时间都耗费在了写报告上)。费在了写报告上)。现实世界中的数据一般是脏的、不完整的和不一致的。数据预处现实世界中的数据一般是脏的、不完整的和不一致的。数据预处理可以改进数据质量,从而有助于提高其后的挖掘过程的精度和理可以改进数据质量,从而有助于提高其后的挖掘过程的精度和性能。性能。数据挖掘中数据预处理主要包括:数据清洗(填写缺失值、光滑数据挖掘中数据预处理主要包括:数据清洗(填写缺失值、光滑噪声数据,识别或删除离群点并解决不一致性)、数据集成(合噪声数据,识别或删除离群点并解决不一致性)、数据集成(合成多个数据源的数据,存放在一个一致的数据文件或数据库中)成多个数据源的数据,存放在一个一致

24、的数据文件或数据库中)、数据转换(把数据规范化和聚集)和数据规约(维度规约和数、数据转换(把数据规范化和聚集)和数据规约(维度规约和数值规约)值规约)1 1、数据合并、数据合并u R中提供了多个函数,用于把多个数据结构粘贴成一个数据中提供了多个函数,用于把多个数据结构粘贴成一个数据结构。如结构。如paste()、rbind()、cbind()和和merge()(1)paste()函数函数 paste()函数把多个字符型向量连接成一个向量,如果要将函数把多个字符型向量连接成一个向量,如果要将两个不同类型的向量连接起来,那么会被强制转换成字符两个不同类型的向量连接起来,那么会被强制转换成字符型向量

25、。型向量。在默认情况下,向量的值之间用空格分隔的,还可用在默认情况下,向量的值之间用空格分隔的,还可用sep参数指定其他类型的分隔符。参数指定其他类型的分隔符。如果想把向量中的所有值都连接成一个字符串,可用如果想把向量中的所有值都连接成一个字符串,可用collapse参数参数u举例举例 1 1、数据合并、数据合并(2)cbind()和和rbind()函数函数 有时候,需要把几个向量、矩阵或数据框合并在一起,那有时候,需要把几个向量、矩阵或数据框合并在一起,那么么cbind()和和rbind()可以实现此功能。可以实现此功能。cbind()函数:通过增加列的形式把几个对象合并在一起。函数:通过增

26、加列的形式把几个对象合并在一起。相当于水平地将两张表拼接在一起。相当于水平地将两张表拼接在一起。rbind()函数:通过增加行的形式把几个对象合并在一起。函数:通过增加行的形式把几个对象合并在一起。相当于垂直地把两张表拼接在一起。相当于垂直地把两张表拼接在一起。使用方法:使用方法:c/rbind(arg1,arg2,arg3,),其中,其中arg1、arg2、arg3等参数的长度等参数的长度(列数和行数列数和行数)不相等时,会有循环补不相等时,会有循环补齐。齐。u举例举例u举例举例 1 1、数据合并、数据合并(3)merge()函数函数 merge()函数:通过共同的字段合并数据框。函数:通过

27、共同的字段合并数据框。功能描述:功能描述:Merge two data frames by common columns or row names,or do other versions of database _join_ operations.定义形式:定义形式:merge(x,y,by=intersect(names(x),names(y),by.x=by,by.y=by,all=FALSE,all.x=all,all.y=all,sort=TRUE,suffixes=c(.x,.y),incomparables=NULL,.)参数说明参数说明l x 用于合并的数据框用于合并的数据框l

28、 y 用于合并的数据框用于合并的数据框l by 对应于列的字符型向量,默认值对应于列的字符型向量,默认值intersect(names(x),names(y)l by.x/y 对应对应x/y中列的名称的字符型向量,会覆盖由中列的名称的字符型向量,会覆盖由by提提供的列表供的列表l all.x/y 逻辑值,指定是否应该包含数据框逻辑值,指定是否应该包含数据框x/y中的所有行中的所有行l sort 逻辑值,指定是否需要根据列名对结果进行排序,默逻辑值,指定是否需要根据列名对结果进行排序,默认值是认值是TRUEu举例举例 2 2、数据转换、数据转换u 原始数据中有些变量可能有问题,如变量名称或数据类

29、型原始数据中有些变量可能有问题,如变量名称或数据类型不一致等,那么需要进行数据转换。不一致等,那么需要进行数据转换。(1)变量重新赋值:例如在)变量重新赋值:例如在“使用使用rbind()和和cbind()函数函数之数据框之数据框”中,使用中,使用names()函数对数据框组件的名称重新函数对数据框组件的名称重新赋值。赋值。(2)转换函数:常用的更改数据框变量的函数是)转换函数:常用的更改数据框变量的函数是transform,该函数的定义如下:,该函数的定义如下:transform(_data,)l 此函数没有具名实参,在调用此函数时,首先要指定一个数据框,此函数没有具名实参,在调用此函数时,

30、首先要指定一个数据框,跟着是一列的表达式,表达式中的变量是数据框中的变量,此函数跟着是一列的表达式,表达式中的变量是数据框中的变量,此函数会完成表达式中的计算,并返回一个新的数据框。会完成表达式中的计算,并返回一个新的数据框。u举例举例 2 2、数据转换、数据转换(3)对对象中的每个元素进行函数运算:在转换数据过程)对对象中的每个元素进行函数运算:在转换数据过程中,经常会对一系列(或一个复合对象的所有元素)运行中,经常会对一系列(或一个复合对象的所有元素)运行一个相同的函数,并返回一系列的对象(或一个新的复合一个相同的函数,并返回一系列的对象(或一个新的复合对象),对象),R的基本库中提供了一

31、系列的函数可完成此项功能的基本库中提供了一系列的函数可完成此项功能。l a、在数组上运行一个函数、在数组上运行一个函数 apply函数可以对一个数组函数可以对一个数组(或矩阵或矩阵)的每一个部分运行同一的每一个部分运行同一个函数:个函数:apply(X,MARGIN,FUN,)X是要计算的数值,是要计算的数值,FUN是函数名称,是函数名称,MARGIN用来指定函用来指定函数将要在哪个维度上运行。数将要在哪个维度上运行。u举例举例u举例举例 2 2、数据转换、数据转换l b、对列表或向量的元素进行函数运算、对列表或向量的元素进行函数运算 lapply函数允许在函数允许在列表或数据框列表或数据框上

32、的每一个元素运行某个上的每一个元素运行某个函数,并函数,并返回一个列表返回一个列表,lapply函数有两个参数:对象函数有两个参数:对象X和函数和函数FUN。如果想返回的结果不是列表,而是向量、矩阵或数组(视如果想返回的结果不是列表,而是向量、矩阵或数组(视具体情况),那么具体情况),那么sapply函数可以完成此功能。此函数的函数可以完成此功能。此函数的使用方法与使用方法与lapply一致。一致。还有一个还有一个“多元多元”版本的版本的sapply函数:函数:mapply()mapply()定义形式如下:定义形式如下:mapply(FUN,MoreArgs=,SIMPLIFY=,USE.NA

33、MES=)函数参数说明如下:函数参数说明如下:参数参数描述描述默认值默认值FUN要运行的函数要运行的函数FUN运行在其上的一系列向量对象运行在其上的一系列向量对象MoreArgs其他传递给其他传递给FUN的参数的参数SIMPLIFY逻辑值,用于表示是否简化返回结果逻辑值,用于表示是否简化返回结果TRUEUSE.NAMES逻辑值,用于表示返回值是否使用名字,名字来自第一个向量逻辑值,用于表示返回值是否使用名字,名字来自第一个向量TRUEu举例举例u举例举例 3 3、数据分段和子集、数据分段和子集(1)cut()函数可将一个连续性变量切割成很多小片段,用函数可将一个连续性变量切割成很多小片段,用于

34、处理数值向量或于处理数值向量或R中的中的Date对象。输入时一个数值向量,对象。输入时一个数值向量,输出是一个因子,因子的每个水平对应输入向量的每个区输出是一个因子,因子的每个水平对应输入向量的每个区间范围。间范围。数值形式:数值形式:cut(x,breaks,labels=NULL,include.lowest=FALSE,right=TRUE,dig.lab=3,ordered_result=FALSE,)日期形式:日期形式:cut(x,breaks,labels=NULL,start.on.monday=TRUE,right=FALSE,)函数参数说明如下:函数参数说明如下:参数参数描述

35、描述默认值默认值x数值向量数值向量breaks指定分隔点数量的整数,或指定分隔点位置的向量指定分隔点数量的整数,或指定分隔点位置的向量labels输出因子的水平的标签输出因子的水平的标签NULLInclude.lowest逻辑值,表示区别左右两边的临界点是否包含在区间内逻辑值,表示区别左右两边的临界点是否包含在区间内FALSEright逻辑值,表明区间是否应该是左开右闭的逻辑值,表明区间是否应该是左开右闭的TRUEdig.lab当产生标签是,标签的有效位数当产生标签是,标签的有效位数3Ordered_resultes逻辑值,表明返回值是否被转换成有序因子逻辑值,表明返回值是否被转换成有序因子F

36、ALSEu举例举例(2)子集)子集a、中括号索引的方式,使用逻辑表达式筛选满足条件的元、中括号索引的方式,使用逻辑表达式筛选满足条件的元素对象。适用对象:向量、数组、矩阵、数据框。素对象。适用对象:向量、数组、矩阵、数据框。b、使用、使用subset()函数,可对矩阵、数据框的行函数,可对矩阵、数据框的行/列进行筛选列进行筛选。定义形式如下:。定义形式如下:subset(x,subset,select,drop=FALSE,)。参数说明:参数说明:x,筛选对象;,筛选对象;subset,哪些行被返回的逻辑表,哪些行被返回的逻辑表达式;达式;select,哪些列被返回。,哪些列被返回。3 3、数

37、据分段和子集、数据分段和子集(2)子集)子集c、抽取部分随机数据也是产生子集的一种方法。最简单的、抽取部分随机数据也是产生子集的一种方法。最简单的随机抽样的使用随机抽样的使用sample()函数,此函数的定义形式如下:函数,此函数的定义形式如下:sample(x,size,replace=FALSE,prob=NULL)参数说明:参数说明:x,目标对象;,目标对象;size,抽样数量的参数;,抽样数量的参数;replace,是否返回抽样,是否返回抽样(默认值是默认值是FALSE);prob,抽样的概率向,抽样的概率向量。量。使用说明:当对数据框做使用说明:当对数据框做sample操作时,实际返

38、回的是列操作时,实际返回的是列的随机抽样结果,而不是行(因为数据框是向量的列表,的随机抽样结果,而不是行(因为数据框是向量的列表,sample实际抽样的是这个列表的元素)。实际抽样的是这个列表的元素)。使用说明:对应行抽样,需要使用使用说明:对应行抽样,需要使用sample函数创建一组行函数创建一组行号的抽样结果,然后再利用索引选取这些行号所对应的行号的抽样结果,然后再利用索引选取这些行号所对应的行举例举例 4 4、数据汇总、数据汇总u R提供了各种用于汇总数据、聚合记录构建小型数据集的提供了各种用于汇总数据、聚合记录构建小型数据集的函数。例如:函数。例如:tapply()、by()、aggr

39、egate()、rowsum()和和计数函数计数函数tabulate()和和table()函数。函数。(1)tapply()函数用于函数用于向量向量的汇总分析,是一个非常灵活的汇总分析,是一个非常灵活的函数,可设置对向量的函数,可设置对向量X的某个子集做汇总,也可指定汇的某个子集做汇总,也可指定汇总函数。总函数。定义如下:定义如下:tapply(X,INDEX,FUN,simplify)(2)by()函数:与函数:与tapply差不多,区别在于差不多,区别在于by应用于应用于数据数据框框,INDICES代替了代替了tapply中的中的INDEX参数。参数。函数参数说明如下:函数参数说明如下:参

40、数参数描述描述默认值默认值X在此对象上应用函数在此对象上应用函数(通常是向量通常是向量)INDEX列表因子,设置列表因子,设置X中的值是如何分组交给中的值是如何分组交给FUN去计算的,与去计算的,与X等长等长FUN应用到应用到X中元素的函数中元素的函数NULL.传递给传递给FUN的可选参数的可选参数simplify若为若为TRUE,且,且FUN返回标量,那么返回标量,那么tapply就返回一个与标量模式就返回一个与标量模式一致的数组。若为一致的数组。若为FALSE,tapply函数就返回列表函数就返回列表TRUEu举例举例 4 4、数据汇总、数据汇总(3)aggregate()函数:应用于数据

41、框的数据汇总函数。函数:应用于数据框的数据汇总函数。定义形式如下:定义形式如下:aggregate(x,by,FUN,)此函数也用于时间序列,参数略有不同:此函数也用于时间序列,参数略有不同:aggregate(x,nfrequency=1,FUN=sum,ndeltat=1,ts.eps=getOption(“ts.eps”),)参数说明:参数说明:x,要聚合的对象;要聚合的对象;by,分组元素列表,长度与分组元素列表,长度与x一样;一样;FUN,标量函数,用于计算总统计量,对数据框没有标量函数,用于计算总统计量,对数据框没有默认值,对时间序列默认值为默认值,对时间序列默认值为sum;nfr

42、equency,单位时,单位时间内的观察次数;间内的观察次数;其他传递给其他传递给FUN的参数。的参数。u举例举例 4 4、数据汇总、数据汇总(4)rowsum()函数:应用于数据框的数据汇总函数,根函数:应用于数据框的数据汇总函数,根据分组变量计算对象中某个变量的总和。据分组变量计算对象中某个变量的总和。定义形式如下:定义形式如下:rowsum(x,group,reorder=TRUE,)参数说明:参数说明:x,要聚合的对象要聚合的对象,包括向量、矩阵和数据框;包括向量、矩阵和数据框;group,分组元素列表或向量,长度与分组元素列表或向量,长度与x一样;一样;reorder,若为若为TRU

43、E,输出结果会依照,输出结果会依照sort(unique(group)的结果进行的结果进行排序,若为排序,若为FALSE,则根据给出的,则根据给出的group排序。排序。na.rm,逻辑值,判断是否放弃逻辑值,判断是否放弃NA值。值。u举例举例 4 4、数据汇总、数据汇总(5)计数:)计数:tabulate()和和table()a、tabulate()计算向量、矩阵、因子计算向量、矩阵、因子(不能是数据框不能是数据框)中没中没干过值的个数,返回的结果就是包含这些计数的向量,定干过值的个数,返回的结果就是包含这些计数的向量,定义形式:义形式:tabulate(bin,nbins=max(1,bi

44、n,na.rm=TRUE),bin:a numeric vector(of positive integers),or a factor.b、table()处理数据中的一些分类值。定义形式如下:处理数据中的一些分类值。定义形式如下:table(,exclude=if(useNA=“no”)c(NA,NA),useNA=c(“no”,“ifany”,“alway”),dnn=list.names(),deparse.level=1)。函数参数说明如下:函数参数说明如下:参数参数描述描述默认值默认值因子集合因子集合(或可转换成因子对象的集合或可转换成因子对象的集合)exclude要删除的因子水平要

45、删除的因子水平if(useNA=“no”)c(NA,NA)useNA设置是否使用表中的设置是否使用表中的NA值值c(“no”,“ifany”,“alway”)dnn用于设置结果维度名称用于设置结果维度名称list.names()deparse.level见帮助文件见帮助文件1u举例举例 5 5、数据修整、数据修整u 数据修整:为了便于计算、存储数据,有时候需要改变数数据修整:为了便于计算、存储数据,有时候需要改变数据的组织形式或更换统计量对数据重新统计计算。例如很据的组织形式或更换统计量对数据重新统计计算。例如很多列但很稀疏的数据框,尽管可以直接拿来分析,但在保多列但很稀疏的数据框,尽管可以直

46、接拿来分析,但在保存时就会比较麻烦。存时就会比较麻烦。R中提供了多种数据修整的函数。中提供了多种数据修整的函数。(1)向量、矩阵和数据框的转置函数)向量、矩阵和数据框的转置函数t()(2)窄数据和宽数据格式转换函数:)窄数据和宽数据格式转换函数:unstack()、stack()(3)数据框形状修改函数)数据框形状修改函数reshape()5 5、数据修整、数据修整(2)窄数据和宽数据格式转换函数:)窄数据和宽数据格式转换函数:unstack()、stack()stack(x),x是数据框,可以将宽格式的数据形式转换成是数据框,可以将宽格式的数据形式转换成长格式的数据形式。长格式的数据形式。u

47、nstack(x,变量变量1变量变量2),与,与stack的作用恰恰相反,的作用恰恰相反,把长格式的数据形式转换成宽格式的数据形式。但要注把长格式的数据形式转换成宽格式的数据形式。但要注意第二个参数的公式类型:变量意第二个参数的公式类型:变量2会被当成因子类型,它会被当成因子类型,它的每个水平都会形成一列,变量的每个水平都会形成一列,变量1是相应的输出变量值。是相应的输出变量值。u举例举例 5 5、数据修整、数据修整(2)reshape函数:此函数比较复杂,它有两个功能,一函数:此函数比较复杂,它有两个功能,一个功能是把长数据转换成宽数据,另一个是把宽数据转换个功能是把长数据转换成宽数据,另一

48、个是把宽数据转换成长数据。定义形式:成长数据。定义形式:使用说明使用说明(1)、)、diresction参数用来设置所需的数据框是参数用来设置所需的数据框是“长的长的”还是还是“宽的宽的”。(2)若将数据转换为宽数据时,需要设置)若将数据转换为宽数据时,需要设置idvar和和timevar参数,将数据转换成长数据时,要设置参数,将数据转换成长数据时,要设置varying参数。参数。(3)reshape是可逆的,如果一个对象是可逆的,如果一个对象d通过调用通过调用reshape创建的,还可以再次调用创建的,还可以再次调用reshape将其转换成将其转换成原来的数据框。原来的数据框。(4)还有功能

49、更强大的)还有功能更强大的reshape库和库和plyr包。包。函数参数说明如下:函数参数说明如下:参数参数描述描述默认值默认值data需要修整的数据框需要修整的数据框varying通常是变量名称列表。宽格式数据中的变量列表,它们需要分配通常是变量名称列表。宽格式数据中的变量列表,它们需要分配到长格式中行到长格式中行NULLv.names长格式中的变量名称将赋给宽格式的列长格式中的变量名称将赋给宽格式的列NULLtimevar长格式中用于识别同一组或同一个个体的观察的变量长格式中用于识别同一组或同一个个体的观察的变量“time”idvar长格式中用于识别分组或个体的变量长格式中用于识别分组或个

50、体的变量“id”ids用于新的用于新的idvar1:NROW(data)times用于新的用于新的timevardirection设置数据转换方向设置数据转换方向,“wide”表示从长数据到宽数据,表示从长数据到宽数据,“long”相相反反 6 6、数据清洗、数据清洗u 数据清洗的目的是发现数据收集、处理和存储过程中的问数据清洗的目的是发现数据收集、处理和存储过程中的问题,并对数据进行修正,避免这些问题影响后续的分析。题,并对数据进行修正,避免这些问题影响后续的分析。数据清洗并不改变数据的含义。数据清洗并不改变数据的含义。(1)查找和删除重复的数据:可使用)查找和删除重复的数据:可使用dupl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(R软件及编程应用第四讲报告课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|