【R语言】【3】apply,tapply,lapply,sapply,mapply与par函数相关参数

2023-10-16 05:59

本文主要是介绍【R语言】【3】apply,tapply,lapply,sapply,mapply与par函数相关参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

R语言绘图虽然看着简洁,但是函数参数实在是太多了——虽然学了4天,但是像是学了一周,其实我目前目的是画好看的图,那么如果有绘图模板就好了。由于买的书中的函数调用太多简洁,df$SOD等变量数据不知从何而来,所以要自己积累模板了。

这里存在一些问题,虽然学了知识就算忘了也有印象,但是忘的太多又要重学!比如几个月或是几年才捡起来,用几次的matlab,每次都要重敲一两天的语法代码和绘图代码,才能找到感觉……


目录

    • 前言
    • apply
      • tapply 分组计算
      • lapply 多元素按行分组计算
      • sapply 简化版lapply
      • mapply 多data计算
    • par
      • bty 图的围边
      • fg/bg 前景/背景
      • las 坐标轴横竖数字
      • lty 线的类型

\;\\\;\\\;

apply

m <- array(c(1:10),dim=c(2,5)# byrow=TRUE #按行填充 array没有这个参数
)
m
a=apply(m,1,sum)   #按行求和
a
a=apply(m,2,sum)   #按列求和
a
> m[,1] [,2] [,3] [,4] [,5]
[1,]    1    3    5    7    9
[2,]    2    4    6    8   10
> a
[1] 25 30
> a
[1]  3  7 11 15 19
a <- array(c(1:8),dim=c(2,2,2)
)
a
res=apply(a,1,sum)    #第1层2x2,第2层2x2
res
res=apply(a,2,sum)    #第1片2x2,第2片2x2
res
res=apply(a,c(1,2),sum)   #6根1x2
res
> a
, , 1[,1] [,2]
[1,]    1    3
[2,]    2    4, , 2[,1] [,2]
[1,]    5    7
[2,]    6    8
> res
[1] 16 20
> res
[1] 14 22
> res[,1] [,2]
[1,]    6   10
[2,]    8   12

\;\\\;\\\;

tapply 分组计算

v <- c(1:5)
v
group <- c(rep('a',3),rep('b',2))
group#a b
#6 9
tapply(v,group,sum)  #按group分组,将对应的v中的元素加起来mat <- matrix(c(1:10),nrow=2)
mat
group <- matrix(c(rep(1,5),rep(2,5)),nrow=2)
group# 1  2
#15 40
# tapply(mat,group,sum)  #按group分组,将对应的mat中的元素加起来#1 2
#3 8
tapply(mat,group,mean) #按group分组,将对应的mat中的元素加一起求均值

\;\\\;\\\;

lapply 多元素按行分组计算

需要转成data.frame

l <- list(a=c(1:5),b=c(6:10)
)
#返回一个list
res <- lapply(l,mean )   # 3 8
#转成data.frame
res <- as.data.frame(res)
res
> resa b
1 3 8
rownames <- paste('a',LETTERS,sep='#')
rownames#去掉前缀a#
names <- unlist(lapply(strsplit(rownames,'#'),function(x) x[2]   #取第二个元素
))
names
> rownames[1] "a#A" "a#B" "a#C" "a#D" "a#E" "a#F" "a#G" "a#H" "a#I"
[10] "a#J" "a#K" "a#L" "a#M" "a#N" "a#O" "a#P" "a#Q" "a#R"
[19] "a#S" "a#T" "a#U" "a#V" "a#W" "a#X" "a#Y" "a#Z"
> names[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N"
[15] "O" "P" "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"

\;\\\;\\\;

sapply 简化版lapply

l <- list(a=c(1:5),b=c(6:10)
)
sapply(l,mean,simplify=T) #T表示不用unlist了
a b 
3 8 

\;\\\;\\\;

mapply 多data计算

#可以传入多个data
mapply(sum,list(a=1,b=2,c=3),list(a=10,b=20,d=30)
)mapply(sum,list(a=1,b=2,c=3),list(a=10,b=20,c=30),list(a=15,b=25,d=35)
)mapply(function(x,y) x%%y,c(1:50),c(1:10)
)

\;\\\;\\\;

par

bty 图的围边

par(mfrow=c(3,2))
bty <- c('o','l','7','c',']','u')    #bty是图的围边
for(i in 1:6){par(bty=bty[i])plot(1:5,main=paste('bty=',bty[i],sep=':'))
}

在这里插入图片描述

\;\\\;\\\;

fg/bg 前景/背景

前景就是图的围边

par(fg='red',          #前景(边框)bg='white'         #背景
)
par(mfrow=c(1,1),font=3,          #1普通,2粗体,3斜体,4粗斜体family='serif')  #字体serif就是Times New Roman#气泡图
plot(1:5,main="Times New Roman",cex=1:5,        #cex是点的大小col=1:5         #col是颜色
)

在这里插入图片描述

\;\\\;\\\;

las 坐标轴横竖数字

#las表示坐标轴数字的横竖
par(mfrow=c(2,2))
for( i in 0:3){par(las=i)plot(1:5,main=paste('las=',i))
}

在这里插入图片描述

\;\\\;\\\;

lty 线的类型

par(mfrow=c(2,3))
for( i in 1:6){par(lty=i,lwd=i/2)   #lwd默认是1,线段粗细plot(1:5,type='l',main=paste('lty=',i),sub='subtitle')
}

在这里插入图片描述

\;\\\;\\\;

这篇关于【R语言】【3】apply,tapply,lapply,sapply,mapply与par函数相关参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/219536

相关文章

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Python中的filter() 函数的工作原理及应用技巧

《Python中的filter()函数的工作原理及应用技巧》Python的filter()函数用于筛选序列元素,返回迭代器,适合函数式编程,相比列表推导式,内存更优,尤其适用于大数据集,结合lamb... 目录前言一、基本概念基本语法二、使用方式1. 使用 lambda 函数2. 使用普通函数3. 使用 N

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

Go语言使用Gin处理路由参数和查询参数

《Go语言使用Gin处理路由参数和查询参数》在WebAPI开发中,处理路由参数(PathParameter)和查询参数(QueryParameter)是非常常见的需求,下面我们就来看看Go语言... 目录一、路由参数 vs 查询参数二、Gin 获取路由参数和查询参数三、示例代码四、运行与测试1. 测试编程路

python中update()函数的用法和一些例子

《python中update()函数的用法和一些例子》update()方法是字典对象的方法,用于将一个字典中的键值对更新到另一个字典中,:本文主要介绍python中update()函数的用法和一些... 目录前言用法注意事项示例示例 1: 使用另一个字典来更新示例 2: 使用可迭代对象来更新示例 3: 使用

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据