apply函数族
2021-02-08 本文已影响0人
萍智医信
#apply(X,MARGIN,FUN,...)
#按行求和
apply(df,1,sum)
#按列求和
apply(df,2,sum)
#df里所有元素重新赋值
apply(df,c(1,2),function(x){x<-100})
#计算df里每一列的均值,方差,最大值(apply方法,for方法见下图)
apply(df,2,function(x){c(mean(x),var(x),max(x))})
#编写自定义函数应用apply求df里每一列的均值,方差,最大值
fun_1<_function(x){
c(mean(x),var(x),max(x))
}
apply(df,2,fun_1)
#按列求立方和
apply(df,2,function(x){sum(x^3)})
#针对列表的数据求其每个子集的均值(lapply方法,for方法见下图)
lapply(list,mean)
sapply(list,mean) #lapply函数的简化版,输出结果为向量
lapply(list,mean,na.rm=T) #若数据出现缺失值,去掉缺失值后计算。
#mapply的应用,一次可以输入多个参数或一个参数需传入一个向量对每个值都做运算。
mapply(function(x,y){x^y},c(2,2),c(2,1))
#综合应用,自定义嵌合函数
sapply(list(mean,var,max),
function(x){apply(data,2,x)},
simplify=T)
①apply函数的基本使用方法
apply函数无法应用于列表。
![](https://img.haomeiwen.com/i25702203/4d0b902e3b78a9e4.png)
②计算df里每一列的均值,方差,最大值(for函数方法)
![](https://img.haomeiwen.com/i25702203/91141b25a4ec9b95.png)
③计算df里每一列的均值,方差,最大值(apply方法)
![](https://img.haomeiwen.com/i25702203/171bdaff152b0567.png)
④数据中出现缺失值NA的处理办法(apply函数应用)
![](https://img.haomeiwen.com/i25702203/5a0ba285912a0e57.png)
⑤编写自定义函数应用apply求df里每一列的均值,方差,最大值
![](https://img.haomeiwen.com/i25702203/4ad36f0d13edc904.png)
⑥针对列表的数据求其每个子集的均值(for方法)
![](https://img.haomeiwen.com/i25702203/ee5180c07186652c.png)
![](https://img.haomeiwen.com/i25702203/109d500b81e8fed5.png)
⑦针对列表的数据求其每个子集的均值(lapply方法)
lapply应用于列表、数据框,输出形式为列表。
lapply(frame,mean)得到输出形式为列表的frame数据里每列的均值
![](https://img.haomeiwen.com/i25702203/9555224275a47db5.png)
![](https://img.haomeiwen.com/i25702203/ce55587a157f76a6.png)
sapply是lapply的简化版,输出结果以向量形式呈现。
⑧mapply的应用
MoreArgs(list(1,2))的含义是常数a=1,b=2
![](https://img.haomeiwen.com/i25702203/179f9d753e7d4b02.png)
⑨综合应用,自定义嵌合函数
sapply(list(mean,var,max),function(x){apply(data,2,x)},simplify=T)
![](https://img.haomeiwen.com/i25702203/5fa958b23f1f63b0.png)