您好,欢迎来到爱玩科技网。
搜索
您的当前位置:首页R语言学习笔记1

R语言学习笔记1

来源:爱玩科技网
目录

1 数据结构 .............................................................................................. 2

1.1 对象的5种基本类型: ............................................................... 2 1.2 对象的属性 ................................................................................. 3 1.3 向量(vector) ........................................................................... 3 1.4 矩阵(matrix)和数组(array) ................................................. 3 1.5 列表(list) ................................................................................ 5 1.6 因子(factor) ............................................................................ 6 1.7 数据框(data frame) ................................................................ 6 1.8 日期与时间(date,time) ........................................................... 7 2 构建子集 .............................................................................................. 8

2.1 概述 ............................................................................................ 8 2.2 在矩阵中构建子集的语法 ............................................................ 9 2.3 在数据框中构建子集的语法 ........................................................ 9 2.4 构建列表的子集 ........................................................................ 10 2.5 处理缺失值 ............................................................................... 11 2.6 向量化操作 ............................................................................... 13 3 重要的R语言函数 ............................................................................. 14

3.1 概述 .......................................................................................... 14 3.2 “一句话”循环函数 ..................................................................... 15 3.3 排序函数 ................................................................................... 20 3.4 总结性函数 ............................................................................... 21 4 R语言中的可视化函数 ....................................................................... 23

4.1 绘图包 ...................................................................................... 23 4.2 基本绘图函数 ........................................................................... 23 5 R读取数据 ........................................................................................ 26

5.1 本地文档的读写 ........................................................................ 26 5.2 本地excel读入 ........................................................................ 28 6 数据汇总:plyr包 .............................................................................. 28

6.1 主要函数 ................................................................................... 28 6.2 其他辅助函数 ........................................................................... 29

1 数据结构

1.1 对象的5种基本类型:

字符(character) 数值(numeric) 整数(integer)

复数(complex):1+2i 逻辑(logical):True/Falsex 语法:

> class(x)

可以查看x的数据类型

强制将某一串数据类型转换为另一串数据类型,可以用as.函数。 如:输入:y4 <- c(\"1\ as.numeric(y4)

输出后数据类型由字符型转换成了数值型。

注意:若强制转换一些无意义的数据类型,则会报错。

NA代表缺失值,这一提示表示数据被无意义地强迫转换,因此用缺失值代替。

其他注意事项:

R里面对大小写比较敏感,所以大小写一定要前后一致。 如:下例中,无论是字符还是函数,大小写错误都会报错。

1.2 对象的属性

名称(name)

维度(dimensions:matrix,array) 类型(class) 长度(length)

1.3 向量(vector)

定义:向量是指包含同一数据类型的一个或一组对象。 语法:x <- vector(数据类型,向量长度)

如: 输入:x <- vector(\"character\ 输出:10个空字符串的向量 输入向量也有简便的方法。 如: 输入:y1 <- 5:10 输出:y1 | 5 6 7 8 9 10 输入:y2 <- c(1,2,3,4) 输出:y2 | 1 2 3 4

其中:c()是一个函数,它将一系列参数转化为向量,c为concatenate的缩写。 若输入的向量并非同一数据类型,R会强制将其转换为字符型。

如:输入:y3 <- c(TRUE,10,'a').输出后数据类型都统一转化为字符型(chr)。 给变量命名,用name函数。如,name(x) <- c(“a”,”b”,”c”)

1.4 矩阵(matrix)和数组(array)

矩阵可以看做向量+维度属性(整数向量:nrow,ncol) 总语法:x <- matrix(nrow=3,ncol=2)。输出的矩阵是3行2列

语法1:在矩阵里输入向量。

第一个方法:在矩阵函数matrix()里输入向量。

第二个方法:先输入一个向量,再输入维度函数,即vector()+dim()。

语法2:查询矩阵的行列数,用dim()函数。

语法3:将两个矩阵拼接。

第一个方法:行数拼接,若第一个矩阵为2行,第二个矩阵为3行,则合并后新矩阵有5行用rbind()函数。

第二个方法:列数拼接,若第一个矩阵为2列,第二个矩阵为3列,则合并后新矩阵有5列用cbind()函数。

数组(array)的维度可以大于2,但矩阵的维度只能等于2.当矩阵的维度是2

时,array()和matrix()结果是一样的。

array()函数举例

当维度大于2时,array()输出的结果如下图所示,由结果可以看到,它展示的是不同分类下的二维矩阵。若dim=c(3,3,2)则展示2个二维矩阵;若dim=c(3,3,4,5)则展示4*5=20个二维矩阵。

1.5 列表(list)

列表:与向量的区别在于,它可以包含不同数据类型的对象。 总语法:list()

第一,仅输入数据。(10L代表整数10)

第二,输入数据并命名。

第三,一个元素里输入多个数据。

第四,list()和matrix()的综合

1.6 因子(factor)

因子:整数向量+标签(label)。它常用于分类数据,分类数据又有有序/无序两种数据类型。 总语法factor() 第一,输入数据。

其中,levels设置了基线,这个R语言中基线是male。

第二,查询各因子个数,使用table()函数。

第三,移除数据的类型,查询净化后的数据,用unclass()函数。

结果中的2 2 1 1 2是integer类型的。

1.7 数据框(data frame)

数据结构:存储表格数据,可以把它看做各元素长度相同的列表(list) 总语法data.frame() 第一,创建数据框

第二,查询这个数据框的行数用nrow()函数,查询列数用ncol()函数。 第三,当各元素的数据类型是一致时,数据框和矩阵可以相互转换。

而当数据类型不一致时,转换时会转化成一样的数据类型。:

1.8 日期与时间(date,time)

1.8.1 语法date() 第一. 获取当前日期,用date()

此时class(x)后会发现,输出的x是一个字符串类型。 第二. 获取数据类型为date型的日期,用Sys.Date()函数

第三. 将数据存储为date型,用as.Date()函数

第四. 获取更加详细的日期。 weekdays()代表该日期是周几; months()代表该日期是哪个月份; quarters()代表该日期是哪个季度;

Julian()代表当前这个日期距离1970-01-01,过去了多少天。

第五. 日期之间可以运算。

1.8.2 时间语法

POSIXct,整数存储;POSIXlt,列表存储,还包含星期、年、月日等信息。 第一. 获取当前时间,用Sys.time()函数

CST指的是时区,此时这个数据类型是POSIXct类型

第二. 存储为POSIXlt类型,用as. POSIXlt()函数。我们可以查询POSIXlt类型的纯属性,依据纯属性继续查询更加详细的信息。

2 构建子集

2.1 概述

构建子集就是对原始数据预处理。 构建子集的基本方法:

[ ]:提取一个或多个类型相同的元素 [ [ ] ]:从列表或数据框中提取元素 $:按名字从列表或数据框中提取元素 语法[ ]

第一,提取某个元素。

提取第2个因素,最终输出了数字6。 第二,可以进行计算。

X>5 & X<7 代表两个集合的交集; X<3 | X>7 代表两个集合的并集;

第四,如果元素有名字,可以直接调用名字查询。

2.2 在矩阵中构建子集的语法

第一,取出某一个元素。

第二,取出某几个元素。

涵义是取出第2行当中的第1列和第3列的数。 可以发现,取出的元素都是向量型。

第三, 取出元素且元素呈矩阵方式出现,需要添加drop=FALSE,表示默认

的是错误的。

2.3 在数据框中构建子集的语法

第一,取出数据框中的元素,要用到$和[ ]两种语法。

第二,取出某一列或某一行的数据,可以用[,2] [2,]

第三,取出满足某个条件的数据。

注意,输入某种条件时一定要在条件下项后加入逗号。

第四,构建子数据框函数subset(名称,条件)。它的效果和直接使用[ ]类似。

第五,取出某个数据集的前几行的数据,用x[1:n,],若要取前10行,则n=10.

2.4 构建列表的子集

第一, 嵌套函数[[ ]]只拿出内容,不拿出名称。

注意:使用一层嵌套,拿出了名称id和其所属内容;使用两层嵌套,只拿出了所属内容。

另外x[[“id”]]的结果和x$id的结果是一样的。

第二,取出嵌套函数的某一个内容,用多个[ ]语法可以实现。

如果[[ ]]中所使用的语法是c()函数的话,我们可以发现:未有嵌套时[c(1,2)]取出的是大list的第一个元素和第二个元素;有嵌套时[[c(1,3)]]取出的是大list中的第一个元素里的小list里的第三个元素,同理[[c(2,2)]]取出的是大list中的第二个元素里的小c函数里的第2个元素。

总结:取出嵌套里的内容,可以使用多个[[ ]](如:[[ 1]] [[2 ]])接连呈现,也可以使用一个[[ ]]再加c函数实现(如[[ c(2,3)]])。 第三,列表的不完全匹配。

备注:exact=FALSE指的是“关闭精确匹配”。

R语言中如果元素的名称比较复杂,可以使用较少的字符来代替原有元素名称来使用,但前提是这个“较少的字符”不可有歧义。

2.5 处理缺失值

缺失值有两种表达形式:NA、NaN。其中,NaN表示数值类型的缺失值,NA可以表示所有数据类型的缺失值。

判断是否含有缺失值用is.na()/is.nan()函数。是缺失值,结果反馈为TRUE,不是缺失值,结果反馈为FALSE。其中,is.nan()表示的是“是否为数值类型的缺失值”。

此例中由于NA不是数值型的缺失值,所以若使用is.nan()函数则判断结果为FAUSE。

2.5.1 语法简述

拿出单个向量非缺失值的数据,使用!is.na()函数。

“!”代表取反的意思,原来为真的,加了“!”之后变为假。 拿出多个向量都非缺失值的:

2.5.2 综合应用(以某个数据集为例)

取出的最终结果如下:

而原始数据是:

可见,只要含有缺失值,那么该行就被删除掉了。

2.6 向量化操作

2.6.1 简单向量的加减乘除 第一,当两个向量长度一样时

如x1 <- c(1,2,3,4,5),y1 <- c(6,7,8,9,10) 则输入x1+y1 会输出 7,9,11,13,15; 输入x1*y1 会输出 6,14,24,36,50.

第二,当两个向量长度不一样时,且两个向量长度呈倍数关系时

如x1 <- c(1,2,3,4,5),y1 <- c(6:15)

则输入x1+y1 会输出7,9,11,13,15,12,14,16,18,20; 输入x1*y1 会输出6,14,24,36,50,11,24,39,56,75。

可以看到,在相乘或相加时,R自动把x1看做是(1,2,3,4,5,1,2,3,4,5)来进行计算,其中内部数据循环的次数就是两个向量长度的倍数。 第三,当两个向量长度不一样,且向量长度无倍数关系

如x1 <- c(1,2,3),y1 <- c(7,8,9,10,11) 系统会报错。 2.6.2 矩阵的加减乘除

若x,y是两个矩阵,矩阵之间的加减乘除不能直接使用x+y或x*y,而应该

使用x %*% y。下面对这两种形式进行举例。 x * y

备注:rep(a,b)指的是重复输入数值a,且输入b次。另外,rep(4:1)指的是向量c(4:1),会输出【4 3 2 1】,rep(4:1,2)指的是向量c(4:1)循环2次,会输出【4 3 2 1 4 3 2 1】

可以发现,x*y只是指二者一一对应的相乘。 x %*% y

这才是矩阵相乘的结果。

3 重要的R语言函数

3.1 概述

几个重要函数——

处理循环:不仅有while/for函数,也有“一句话”函数(lapply、sapply,apply、mapply、tapply等); 排序; 总结性函数。

3.2 “一句话”循环函数

3.2.1 Lapply

定义:可以循环处理列表中的每一个元素,它的结果是一个列表。 总语法:lapply(参数):lapply(列表,函数/函数名,其他参数) 第一,简单lapply调用。

使用lapply(列表,函数)

使用lapply(列表,函数,其他参数)

备注:1)当lapply参数非列表时,R语言在运行时强制将其转换为列表进行运算。2)runif(x)指生成x个服从均匀分布的随机数,默认是(0,1)的随机数。 第二,多层嵌套。

function(m)代表m 是一个函数,function(m) m[1,]代表m这个函数的意义是取出第一个元素的值。

第三,函数sapply的结果和lapply结果内容一样,结果形式上sapply更加

美观。

当结果列表元素长度均为1时,sapply返回的是一个向量; 当结果列表元素长度相同且大于1,sapply返回的是一个矩阵。

3.2.2 Apply

定义:沿着数组的某一维度循环处理数据。

总语法:apply(参数):apply(数组,维度,函数/函数名)。数组指的是matrix()和array()

第一:数组为二维矩阵时,维度1表示行,2表示列。

但其实,如果只是要计算列和行的平均数或和,可以用以下函数: rowSums(x);rowMeans(x);colSums(x);colMeans(x) 第二:复杂二维矩阵的apply函数。

备注:rnorm(x),指生成x个服从正态分布的随机数,默认是(0,1)的正态

分布,rnorm(x,y)代表取出x个平均数为y的服从正态分布的随机数。Quantile指的是百分位函数,probs是限定条件。 第三:数组为矩阵时,用array()函数

3.2.3 Mapply

概述:它是lapply的多元版本

总语法:mapply(参数):mapply(函数/函数名,数据,函数相关的参数) 第一,简单mapply语法。

备注:mapply(rep(1:4,4:1))指的是向量(1,2,3,4)和向量(4,3,2,1)的循环逻辑,“1”循环4次,“2”循环3次,“3”循环2次,“4”循环1次。 这个函数与list(rep(1,4),rep(2,3),rep(3,2),rep(4,1))是等价的。

第二,编写自定义函数调用mapply。

备注:function(参数){数值来源}:function(n,mean,std){rnorm(n,mean,std)}指的是从均值为mean,标准差为std的正态分布总体中抽取n个数据。 mapply(s,1:5,5:1,2)指的是从s中抽取数据,第一个元素的s参数值是(1,5,2),即从均值为5,标准差为2的正态分布中抽取一个数据;第二个元素的s参数值是(2,4,2);第三个元素的s参数值是(3,3,2);……以此类推。 这个结果等价于list(s(1,5,2),s(2,4,2),s(3,3,2),s(4,2,2),s(5,1,2)).

3.2.4 Tapply

定义:对向量的子集进行操作。

总语法:tapply(参数):tapply(向量,因子/因子列表,函数/函数名) 如:

备注:gl全称generate factor levels,gl(n,k)指的是创建n个水平,每个水平重复k次。

tapply(x,f,mean)的意思是“将向量x赋值了不同的因子后,计算每个因子下的平均值”, 默认的结果是简化后的列表。可以看到,向量的总长度应与因子的总长度保持一致。

3.2.5 Spilt

定义:根据因子或因子列表将向量或其他对象分组,因它输出的结果是列表,所有通常与lapply一起使用。

总语法:spilt(参数):spilt(向量/列表/数据框,因子/因子列表) 第一,split()简单用法:

split(y,f1)指的是将y向量的10个数据按照因子进行分类。 若此时使用lapply(spilt(y,f1),mean)就可以计算每个因子水平下y的平均值。

第二,综合应用:计算airquality数据集中每个月的臭氧含量、风强、温度。

代码:

备注:table()是计算每个因子水平下的频数。na.rm()全称not available.remove,意思是去除缺失值的影响。(不添加词逻辑变量,则一列中若有一个缺失值,那么该该列计算的平均值就都为NA),如:

3.3 排序函数

函数概述:

sort:对向量进行排序,返回排好序的内容; order:返回排好序的内容的下标/多个排序标准。

默认都是升序排列,如若需要降序,那么设置参数“decreasing = TRUE”。

3.3.1 sort用法

可以看到,sort()返回的结果是一个变量。 同时,sort()不能使用多个排序标准排序

3.3.2 order用法 第一,单个排序标准

单个排序,呈现的是拍好序后的标号,且以向量形式呈现。

使用[ ]嵌套函数,可以产出一个数据框。 第二,多个排序标准

先对v4列排序,再对v2列排序。

3.3.3 sort & order

可以看到,从应用上来讲,sort的用法远不如order,如果对sort使用[ ]嵌套函数,要么全为空值,要么呈现的数据没有意义。、

3.4 总结性函数

以数据集airquality和Titanic为例展示总结性函数 分类 函数 dim(airquality) head(airquality) head(airquality,10) 原始数据基本架构 tail(airquality) tail(airquality,10) 函数意义 返回行数和列数 返回前6行数据 返回前10行数据 返回后6行数据 返回后10行数据 返回总记录数、变量个数、变量名称、每个变量所用的数据str(airquality) 类型及部分数据展示 返回每一个变量的最小/大值,25%/50%/75%百分位点,均原始数据内容概况 summary(airquality) table(airquality$Month) table(airquality$Month, airquality$Temp) 值,缺失值的个数 返回每月的记录数(频数) 返回满足(xi,yi)的频数,xi代表月份,yi代表温度 表格(table) 表格(table) 表格(table) - 返回的数据形式 整数(int) 数据框(data.frame) 数据框(data.frame) 数据框(data.frame) 数据框(data.frame) 以Freq为因变量,返回class和age的交叉表数据,其中xtabs(Freq ~ class + class为4个水平呈y轴排列,age为2个水平呈x轴排列。 对Ozone变量下的每一个数值进行判断,看Ozone变量下是表格(table) age, data= titanic) is.na(airquality$Ozone) 否有缺失值。(会输出多个值) 逻辑变量(logical) 对内嵌函数输出的值进行判断,看里面是否含有缺失值。(会输出单个值,里面只要有any(is.na(airquality$Ozon缺失值/异e)) 常值 一个TRUE,则证明有缺失值,输出TRUE) 对内嵌函数输出的值进行判断,看里面是否含有缺失值。逻辑变量(logical) all(is.na(airquality$Ozone)) sum(is.na(airquality$Ozone)) all(airquality$Month<12) print(object.size(airquality)其他 ,units = \"kb\") (会输出单个值,里面全部都为TRUE,输出TRUE) 返回Ozone变量下缺失值的总数 整数(int) 逻辑变量(logical) 判断月份是不是全部小于12。 逻辑变量(logical) 计算该数据集的大小,单位是Kb - 备注:Titanic数据集不是数据框,需要调用函数as.dataframe()来将其转化为数据框

4 R语言中的可视化函数

4.1 绘图包

绘图包:graphics,lattice,ggplot2

一般来说:graphics,lattice用来做探索性绘图,用以分析者自己更方便了解数据,而ggplot2用来做解释性绘图,用以向外界展示结果,更加美观一些。

4.2 基本绘图函数

4.2.1 Plot()

散点图:plot(cars$dist~cars$speed),作以speed为x轴,dist为y轴的散点图。

线形图/条状图:plot(cars$dist,type = \"l\"),type为l(lines)线形图,h(histogram)为条状图。其中,dist为y轴,dist中每一数值背后的标号为x轴。

直方图:hist(cars$dist),其中dist为x轴,y轴为dist中每一数值的频率。

4.2.2 Lattice包 Barchart():柱状图 语法示例:

备注:sample()函数指在1~3的数字中进行有放回(replace)的重复抽样,抽样50次。

涵义:调取lattice包,建立一组数据并绘制柱状图。 Qqmath()

观察某个数据是否符合正态分布。如qqmath(rnorm(100)) Stripplot():点图 语法示例:

stripplot(~ Sepal.Length | Species,data = iris,layout = c(1,3))

涵义:以Sepal.Length这个变量为依据展示数据,条件是,数据从iris中获取,把Species当做分类变量分类作图,作图时画布分割为1行3列(即各类

别形成的图的排列依据)。 Histogram():直方图 语法示例:

histogram(~Sepal.Length | Species,data = iris, layout=c(1,3)) 涵义:作直方图。 Densityplot():密度图 语法示例:

densityplot(~ Sepal.Length, groups = Species,data= iris, plot.points = FALSE)

涵义:以Sepal.Length这个变量为因变量展示数据,条件是,数据从iris中获取,把Species当做分类变量分类作图且这些图在同一个坐标系里,最后形成的图当中会出现散点,把这个清除掉。

备注:group的意思是在同一个坐标系里用不同颜色来区分分组变量里的不同类别。

Bwplot():箱线图 语法示例:

bwplot(Species ~ Sepal.Length,data = iris)

涵义:以Species为y轴,Sepal.Length为x轴,作箱线图。 Xyplot():散点图 语法示例:

xyplot(Sepal.Width ~ Sepal.Length,groups = Species,data = iris)

涵义:以Sepal.Width为y轴,Sepal.Length为x轴,Species作为分组变量,在图中以不同颜色对不同类别进行区分。

4.2.3 Ggplot2包

Ggpot包里添加属性是以图层叠加的方式实现的。 语法示例1a:(建立简单二维变量的散点图) ggplot(data=mpg,mapping = aes(x=cty,y=hwy)) + geom_point()

涵义:对数据mpg作图,作图依据:第一层映射方式中将cty映射在x轴上,

hwy映射在y轴上;第二层将数据以几何上散点的方式呈现在建立好的坐标系上。三层依次叠加得到结果。

其中,可以使用summary(x)来看其内部结构,了解各图层分布情况。 语法示例1b:(在简单二维变量的基础上增加一个分组变量)

ggplot(data=mpg, mapping = aes(x=cty, y=hwy, colour = factor(year))) + geom_point()

涵义:建立xy轴之后,将year这个分组变量以不同的颜色作为不同分组的标识映射在坐标系里。

语法示例2:(作平滑曲线图)

ggplot(data=mpg, mapping = aes(x=cty,y=hwy,colour=factor(year))) +stat_smooth()

涵义:stat_smooth代表做的图是平滑曲线图。

语法示例3:(同一个坐标系里同时显示曲线图和散点图) ggplot(data=mpg, mapping = aes(x=cty,y=hwy)) + geom_point(aes(colour=factor(year))) + stat_smooth()

涵义:第一层映射方式将cty映射在x轴上,hwy映射在y轴上;第二层制作散点图,在该散点图上将colour这个映射方式加入;第三层,制作平滑曲线图。三层依次叠加得到结果图,

语法示例4a:(自定义图的属性)

ggplot(data=mpg, mapping = aes(x=cty, y=hwy)) + geom_point(aes(colour=factor(year))) + stat_smooth()

+ scale_colour_manual(values=c(\"blue2\+ facet_wrap(~ year,ncol=1)

涵义:第四层,指定颜色是“blue2”和”red4”;第五层指定画布上图的排列方式,是依据year这个分组变量把各类别形成的图呈1列展示。

语法示例4b:(精雕细琢)

ggplot(data=mpg, mapping = aes(x=cty,y=hwy))

+ geom_point(aes(colour=class,size=displ),alpha = 0.5,position =\"jitter\")

+ stat_smooth()

+ scale_size_continuous(range = c(4,10)) + facet_wrap(~ year,ncol=1) + ggtitle(\"汽车型号与油耗\") ,poss

+ labs(y=\"每加仑高速公路行驶距离\每加仑城市公路行驶距离\排量\车型\")

涵义:第一层将cty映射到x轴上,hwy映射到y轴上;

第二层中增加了新散点图的映射方式(用不同的颜色区分class这个分组变量,以散点的大小区分displ这个连续变量),且这个散点图的每个点的颜色的透明度设置为0.5,而且各散点的位置添加一些抖动避免完全重合;

第三层添加一个平滑曲线;

第四层散点的尺寸最小值为4,最大值为10,并在4-10的连续区间内取值; 第五层依据year这个分组变量将各类型形成的图呈1列展示; 第六层添加整个图的标题“汽车型号与油耗”;

第七层将y轴原来的“hwy”改成“每加仑高速公路行驶距离”,x轴原来的“cty”改成\"每加仑城市公路行驶距离\",图例”size”由原来的“displ”改成“排量”,图例“colour”由原来的“class”改成“车型”。

备注:图像元素调整的位置有多种类型: Position=“dodge”,避免重叠,并排放置; Position=“fill”,堆叠图形元素并将高度标准为1; Position=“identity”,不作任何调整; Position=“jitter”,给点增加扰动避免重合; Position=“stack”,将图形元素堆叠起来。

5 R读取数据

5.1 本地文档的读写

控制台的输入

Readline():读取一条数据。

语法示例:readline(“yes”),它只能输入单个字符串函数。

Scan():能输入多个数值数据。 语法示例: x <- scan() 1: 3.1 2: 3.2 3:(空格) 本地文本输出

语法示例:

涵义:将向量(1:20)的内容输出到文件“1.txt”里。

备注:sep=”\”指不必在屏幕中显示向量;getwd()指的是输出文档的位置存放在何处。 本地文本输入

语法示例:

涵义:将111.txt里的内容输入到控制台。

注意:使用scan时,文件包含的内容数据类型应该是一样的。 字符串的输入输出

涵义:本地建立一个文件a.txt,在这个文件里写入字符串,之后,在控制台读取该字符串。

注意:此处“读取”使用的是readLines(),意思是读取所有的行。 数据集输出

语法示例:

涵义:将数据包里的iris导出到本地,存储为csv文件,用逗号分隔开。

5.2 本地excel读入

语法示例: library(readxl)

mydata <- read_xlsx(path = \"E:/test.xlsx\

6 数据汇总:plyr包

6.1 主要函数

6.1.1 Ddply

Ddply:input dataframe and output dataframe.

涵义:对任一个数据框的子集应用函数,结果返回一个数据框。 语法:ddply(.data=x,.variables=””,.fun=””) 语法示例:

涵义:将数据框dfx按照“sex”变量进行拆分,之后用函数“年龄的平均值”来对每个拆分的子集进行运算。

6.1.2 adply

Adply: input array and output dataframe.

涵义:对分割后的数组应用函数,结果输出为数据框,

语法:adply(.data,.margins,.fun)。.margins意思是对数组依据维度进行分割,按照行分割的话,.margins=1;按照列进行分割的话,.margin=2。

语法示例:

备注:iris[,-5]指的是“取所有行,除了第5列以外的其他所有列”。

6.1.3 …ply

除此之外,依据输入和输出的数据格式的不同,plyr包里还有以下函数: Input output array Array Dataframe list aaply Daply laply dataframe Adply ddply ldply List alply Dlply llply 6.2 其他辅助函数

Each()

涵义:连接多个函数。语法为each(函数1,函数2,函数3……)(数据集) 语法示例:

Colwise()

涵义:对“列”应用单个函数。语法为colwise(函数,数据类型)(数据集) 语法示例:

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务