当前位置:网站首页>[R language] [3] apply, tapply, lapply, sapply, mapply and par function related parameters
[R language] [3] apply, tapply, lapply, sapply, mapply and par function related parameters
2022-07-31 04:43:00 【Su Nianxin】
前言
RThe language drawing looks terse though,But there are too many function parameters——虽然学了4天,But it's like a week of study,In fact, my current goal is to draw nice pictures,Then it would be nice to have a drawing template.Because the function calls in the book I bought are too concise,df$SODetc. Variable data comes from nowhere,So you have to accumulate templates yourself.
这里存在一些问题,Even if you have learned knowledge, you will have an impression even if you forget it,But if you forget too much, you have to learn it again!Like picking it up in months or years,used several timesmatlab,Every time I have to retype the syntax code and drawing code for a day or two,才能找到感觉……
目录
\;\\\;\\\;
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分组,将对应的vadd up the elements in
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分组,将对应的matadd up the elements in
#1 2
#3 8
tapply(mat,group,mean) #按group分组,将对应的matThe elements in are added together to find the mean
\;\\\;\\\;
lapply Multi-element computations are grouped by row
需要转成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
> res
a 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 The border of the figure
par(mfrow=c(3,2))
bty <- c('o','l','7','c',']','u') #btyis the border of the graph
for(i in 1:6){
par(bty=bty[i])
plot(1:5,main=paste('bty=',bty[i],sep=':'))
}

\;\\\;\\\;
fg/bg 前景/背景
The foreground is the border of the graph
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 Coordinate axis horizontal and vertical numbers
#lasIndicates the horizontal and vertical axis numbers
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')
}

\;\\\;\\\;
边栏推荐
- 微软 AI 量化投资平台 Qlib 体验
- Can't load /home/Iot/.rnd into RNG
- 专访 | 阿里巴巴首席技术官程立:云+开源共同形成数字世界的可信基础
- 【AUTOSAR-RTE】-4-Port and Interface and Data Type
- Basic knowledge of mysql (2)
- MySQL to revise the root password
- Error EPERM operation not permitted, mkdir ‘Dsoftwarenodejsnode_cache_cacach两种解决办法
- mysql基础知识(二)
- 重磅 | 开放原子校源行活动正式启动
- VScode+ESP32快速安装ESP-IDF插件
猜你喜欢

binom二项分布,

论治理与创新 | 2022开放原子全球开源峰会OpenAnolis分论坛圆满召开

Unity Fighter

【C语言进阶】文件操作(一)

Error EPERM operation not permitted, mkdir ‘Dsoftwarenodejsnode_cache_cacach两种解决办法

(五)final、抽象类、接口、内部类

"A daily practice, happy water problem" 1331. Array serial number conversion

MySQL数据库备份

Explanation of

两个地址池r2负责管地址池r1负责管dhcp中继
随机推荐
Musk talks to the "virtual version" of Musk, how far is the brain-computer interaction technology from us
ERP生产作业控制 金蝶
(4) Recursion, variable parameters, access modifiers, understanding main method, code block
Lua,ILRuntime, HybridCLR(wolong)/huatuo热更新对比分析
C Implementation of Simple Network File Copy
SOLVED: After accidentally uninstalling pip (two ways to manually install pip)
ClickHouse: Setting up remote connections
高斯分布及其极大似然估计
Fusion Cloud Native, Empowering New Milestones | 2022 Open Atom Global Open Source Summit Cloud Native Sub-Forum Successfully Held
open failed: EACCES (Permission denied)
idea工程明明有依赖但是文件就是显示没有,Cannot resolve symbol ‘XXX‘
强化学习:从入门到入坑再到拉屎
(tree) Last Common Ancestor (LCA)
ENSP,划分VLAN、静态路由,三层交换机综合配置
三道leetcode上的oj题
【debug锦集】Expected input batch_size (1) to match target batch_size (0)
打造基于ILRuntime热更新的组件化开发
Summary of Huawei Distributed Storage FusionStorage Knowledge Points [Interview]
MySQL修改root账号密码
Explanation of