当前位置:网站首页>[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')
}

\;\\\;\\\;
边栏推荐
- "DeepJIT: An End-To-End Deep Learning Framework for Just-In-Time Defect Prediction" paper notes
- Hand in hand to realize the picture preview plug-in (3)
- How Zotero removes auto-generated tags
- ERROR 1819 (HY000) Your password does not satisfy the current policy requirements
- Safety 20220715
- MySQL基础操作
- "A daily practice, happy water problem" 1331. Array serial number conversion
- 【R语言】【3】apply,tapply,lapply,sapply,mapply与par函数相关参数
- Summary of Huawei Distributed Storage FusionStorage Knowledge Points [Interview]
- LocalDate addition and subtraction operations and comparison size
猜你喜欢

已解决(最新版selenium框架元素定位报错)NameError: name ‘By‘ is not defined

ENSP, VLAN division, static routing, comprehensive configuration of Layer 3 switches

两个地址池r2负责管地址池r1负责管dhcp中继

The idea project obviously has dependencies, but the file is not displayed, Cannot resolve symbol 'XXX'

马斯克对话“虚拟版”马斯克,脑机交互技术离我们有多远

扫雷游戏(c语言写)

重磅 | 开放原子校源行活动正式启动

WPF WPF 】 【 the depth resolution of the template

重磅 | 基金会为白金、黄金、白银捐赠人授牌

XSS靶场(三)prompt to win
随机推荐
HCIP Day 10_BGP Route Summary Experiment
Visual studio shortcuts that improve efficiency, summary (updated from time to time)
WeChat applet uses cloud functions to update and add cloud database nested array elements
[AUTOSAR-RTE]-5-Explicit (explicit) and Implicit (implicit) Sender-Receiver communication
Solved (the latest version of selenium framework element positioning error) NameError: name 'By' is not defined
Gaussian distribution and its maximum likelihood estimation
RESTful api interface design specification
Musk talks to the "virtual version" of Musk, how far is the brain-computer interaction technology from us
C language from entry to such as soil, the data store
【py脚本】批量二值化处理图像
扫雷小游戏——C语言
高斯分布及其极大似然估计
MATLAB/Simulink & & STM32CubeMX tool chain completes model-based design development (MBD) (three)
mysql数据库安装(详细)
30 Years of Open Source Community | 2022 Open Atom Global Open Source Summit 30 Years of Open Source Community Special Event Held Successfully
ERROR 1819 (HY000) Your password does not satisfy the current policy requirements
Basic knowledge of mysql (2)
Industry-university-research application to build an open source talent ecosystem | 2022 Open Atom Global Open Source Summit Education Sub-Forum was successfully held
Two address pools r2 are responsible for managing the address pool r1 is responsible for managing dhcp relays
MySQL fuzzy query can use INSTR instead of LIKE