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

\;\\\;\\\;
边栏推荐
- open failed: EACCES (Permission denied)
- $attrs/$listeners
- idea工程明明有依赖但是文件就是显示没有,Cannot resolve symbol ‘XXX‘
- 手把手实现图片预览插件(三)
- Gaussian distribution and its maximum likelihood estimation
- HCIP第十天_BGP路由汇总实验
- el-image标签绑定点击事件后没有有用
- exsl文件预览,word文件预览网页方法
- No qualifying bean of type question
- IDEA common shortcut keys and plug-ins
猜你喜欢

Thinking about data governance after Didi fines

MATLAB/Simulink&&STM32CubeMX工具链完成基于模型的设计开发(MBD)(三)

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

ERP生产作业控制 金蝶

WPF WPF 】 【 the depth resolution of the template

VScode+ESP32快速安装ESP-IDF插件

三子棋的代码实现

On Governance and Innovation | 2022 OpenAtom Global Open Source Summit OpenAnolis sub-forum was successfully held

扫雷游戏(c语言写)

STM32HAL library modifies Hal_Delay to us-level delay
随机推荐
Explanation of
MySQL database must add, delete, search and modify operations (CRUD)
"DeepJIT: An End-To-End Deep Learning Framework for Just-In-Time Defect Prediction" paper notes
产学研用 共建开源人才生态 | 2022开放原子全球开源峰会教育分论坛圆满召开
Component pass value provide/inject
Solved (the latest version of selenium framework element positioning error) NameError: name 'By' is not defined
三子棋的代码实现
Fusion Cloud Native, Empowering New Milestones | 2022 Open Atom Global Open Source Summit Cloud Native Sub-Forum Successfully Held
volatile内存语义以及实现 -volatile写和读对普通变量的影响
重磅 | 基金会为白金、黄金、白银捐赠人授牌
高斯分布及其极大似然估计
Win10 CUDA CUDNN installation configuration (torch paddlepaddle)
递归实现汉诺塔问题
C# 实现PLC的定时器
HCIP Day 10_BGP Route Summary Experiment
STM32HAL库修改Hal_Delay为us级延时
Musk talks to the "virtual version" of Musk, how far is the brain-computer interaction technology from us
【py脚本】批量二值化处理图像
Basic knowledge of mysql (2)
Error EPERM operation not permitted, mkdir ‘Dsoftwarenodejsnode_cache_cacach两种解决办法