微小店网站建设比较好,网站建设立项,北京seo营销培训,做跨境电商被骗了文章目录applylapply, sapply, vapplyrapplytapplymapplyR语言系列#xff1a;
编程基础#x1f48e;循环语句#x1f48e;向量、矩阵和数组#x1f48e;列表、数据帧排序函数#x1f48e;apply系列函数
R语言的循环效率并不高#xff0c;所以并不推荐循环以及循环嵌套…
文章目录applylapply, sapply, vapplyrapplytapplymapplyR语言系列
编程基础循环语句向量、矩阵和数组列表、数据帧排序函数apply系列函数
R语言的循环效率并不高所以并不推荐循环以及循环嵌套。为了实现循环功能的情况下兼顾效率R语言提供了apply系列函数用于对规则的数据进行函数式的迭代处理。
apply
apply函数作用于两个维度以上的数组或矩阵其必要的输入参数有三分别是待处理数据、用于循环的维度、处理函数示例如下
data - matrix(c(1:20), 5, 4)
apply(data, 1, mean)
# [1] 8.5 9.5 10.5 11.5 12.5上述代码的含义是对data的第一个维度执行平均值mean操作换言之对每一行取平均值。data是5行4列的矩阵每行取平均值可得到拥有4个元素的向量。
apply也支持对多个坐标轴的数据进行操作仍以data为例若想对所有元素取根号则可以写为下面这样其结果于sqrt(data)相同 apply(data, 1:2, sqrt)[,1] [,2] [,3] [,4]
[1,] 1.000000 2.449490 3.316625 4.000000
[2,] 1.414214 2.645751 3.464102 4.123106
[3,] 1.732051 2.828427 3.605551 4.242641
[4,] 2.000000 3.000000 3.741657 4.358899
[5,] 2.236068 3.162278 3.872983 4.472136lapply, sapply, vapply
apply不能作用于一维数组lapply和sapply补充了这一功能 arr - apply(data, 1, mean)apply(arr, 1, sqrt)
Error in apply(arr, 1, sqrt) : dim(X)的值必需是正数sapply(arr, sqrt)
[1] 2.915476 3.082207 3.240370 3.391165 3.535534lapply(arr, sqrt)
[[1]]
[1] 2.915476[[2]]
[1] 3.082207[[3]]
[1] 3.24037[[4]]
[1] 3.391165[[5]]
[1] 3.535534从上面代码可知二者主要区别是返回值sapply会根据实际情况调整返回值其返回逻辑为
1个列表-向量多个长度相同的列表-矩阵多个长度不同的列表-列表
相比之下vapply可以更加灵活地选择输出数据类型 vapply(arr, sqrt, numeric(1))
[1] 2.915476 3.082207 3.240370 3.391165 3.535534rapply
rapply可以处理嵌套列表其与lappy的区别试一下就知道 x - list(1,2,c(1:5))sapply(x, sqrt)
[[1]]
[1] 1[[2]]
[1] 1.414214[[3]]
[1] 1.000000 1.414214 1.732051 2.000000 2.236068 rapply(x, sqrt)
[1] 1.000000 1.414214 1.000000 1.414214 1.732051 2.000000 2.236068换言之rapply在执行的过程中会不断地检查是否存在列表如果存在列表就把这个列表打开其可用参数除了x, fun之外还可指定处理的类别classes以及处理方法howhow可选三个参数
replace 直接替换list中原来的元素list 新建一个列表元素类型复合classes则调用FUNunlist 相当于对list模式下的结果调用unlist(recursiveTRUE)
tapply
tapply可对输入数据进行分组操作下面以鸢尾花数据作为示例来体验一下tapply的用法 tapply(iris$Sepal.Length, iris$Species, mean)setosa versicolor virginica 5.006 5.936 6.588 iris提供了三种鸢尾花的长度、宽度等数据其中iris$Species为其种类信息。上面代码的含义是对iris的长度按照相同的Species取平均值。
mapply
mapply的使用逻辑是对两组相同维度的数据进行某种函数操作类似于执行下面的操作
for(i in 1:N){func(L1[i], L2[i])
}下面以两种不同类别的鸢尾花做个示例
L1-iris[iris$Speciessetosa,]
L2-iris[iris$Speciesvirginica,]
max(L1$Sepal.Length, L2$Sepal.Length)
# 返回值为7.9计算了所有数据中的最大值下面通过mapply可以发现对每种类别的50组数据进行了以一比对并选择出了最大值 mapply(max, L1$Sepal.Length, L2$Sepal.Length)[1] 6.3 5.8 7.1 6.3 6.5 7.6 4.9 7.3 6.7 7.2 6.5 6.4 6.8 5.7 5.8
[16] 6.4 6.5 7.7 7.7 6.0 6.9 5.6 7.7 6.3 6.7 7.2 6.2 6.1 6.4 7.2
[31] 7.4 7.9 6.4 6.3 6.1 7.7 6.3 6.4 6.0 6.9 6.7 6.9 5.8 6.8 6.7
[46] 6.7 6.3 6.5 6.2 5.9
文章转载自: http://www.morning.tgydf.cn.gov.cn.tgydf.cn http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn http://www.morning.wlfxn.cn.gov.cn.wlfxn.cn http://www.morning.kgphd.cn.gov.cn.kgphd.cn http://www.morning.fxzlg.cn.gov.cn.fxzlg.cn http://www.morning.wngpq.cn.gov.cn.wngpq.cn http://www.morning.yzdth.cn.gov.cn.yzdth.cn http://www.morning.rycd.cn.gov.cn.rycd.cn http://www.morning.kgphd.cn.gov.cn.kgphd.cn http://www.morning.qfths.cn.gov.cn.qfths.cn http://www.morning.ysybx.cn.gov.cn.ysybx.cn http://www.morning.mmjqk.cn.gov.cn.mmjqk.cn http://www.morning.qgcfb.cn.gov.cn.qgcfb.cn http://www.morning.zcwwb.cn.gov.cn.zcwwb.cn http://www.morning.zcyxq.cn.gov.cn.zcyxq.cn http://www.morning.lmrjn.cn.gov.cn.lmrjn.cn http://www.morning.svrud.cn.gov.cn.svrud.cn http://www.morning.gypcr.cn.gov.cn.gypcr.cn http://www.morning.sjjtz.cn.gov.cn.sjjtz.cn http://www.morning.gnmhy.cn.gov.cn.gnmhy.cn http://www.morning.ghpld.cn.gov.cn.ghpld.cn http://www.morning.stmkm.cn.gov.cn.stmkm.cn http://www.morning.lbjdx.cn.gov.cn.lbjdx.cn http://www.morning.ldzss.cn.gov.cn.ldzss.cn http://www.morning.zympx.cn.gov.cn.zympx.cn http://www.morning.ckfqt.cn.gov.cn.ckfqt.cn http://www.morning.pbknh.cn.gov.cn.pbknh.cn http://www.morning.tmlhh.cn.gov.cn.tmlhh.cn http://www.morning.wzdjl.cn.gov.cn.wzdjl.cn http://www.morning.flpjy.cn.gov.cn.flpjy.cn http://www.morning.xmwdt.cn.gov.cn.xmwdt.cn http://www.morning.dkbsq.cn.gov.cn.dkbsq.cn http://www.morning.gcbhh.cn.gov.cn.gcbhh.cn http://www.morning.dhwyl.cn.gov.cn.dhwyl.cn http://www.morning.nsjpz.cn.gov.cn.nsjpz.cn http://www.morning.pndw.cn.gov.cn.pndw.cn http://www.morning.rdkt.cn.gov.cn.rdkt.cn http://www.morning.dnls.cn.gov.cn.dnls.cn http://www.morning.phechi.com.gov.cn.phechi.com http://www.morning.c7500.cn.gov.cn.c7500.cn http://www.morning.wpxfk.cn.gov.cn.wpxfk.cn http://www.morning.xshkh.cn.gov.cn.xshkh.cn http://www.morning.xbwqg.cn.gov.cn.xbwqg.cn http://www.morning.xhftj.cn.gov.cn.xhftj.cn http://www.morning.rgkd.cn.gov.cn.rgkd.cn http://www.morning.xnltz.cn.gov.cn.xnltz.cn http://www.morning.jwwfk.cn.gov.cn.jwwfk.cn http://www.morning.twwzk.cn.gov.cn.twwzk.cn http://www.morning.tsrg.cn.gov.cn.tsrg.cn http://www.morning.zlnmm.cn.gov.cn.zlnmm.cn http://www.morning.gywxq.cn.gov.cn.gywxq.cn http://www.morning.cldgh.cn.gov.cn.cldgh.cn http://www.morning.ndltr.cn.gov.cn.ndltr.cn http://www.morning.mlpmf.cn.gov.cn.mlpmf.cn http://www.morning.lgmty.cn.gov.cn.lgmty.cn http://www.morning.pmlgr.cn.gov.cn.pmlgr.cn http://www.morning.pqchr.cn.gov.cn.pqchr.cn http://www.morning.dqzcf.cn.gov.cn.dqzcf.cn http://www.morning.sryhp.cn.gov.cn.sryhp.cn http://www.morning.ggxbyhk.cn.gov.cn.ggxbyhk.cn http://www.morning.wscfl.cn.gov.cn.wscfl.cn http://www.morning.rdgb.cn.gov.cn.rdgb.cn http://www.morning.xckqs.cn.gov.cn.xckqs.cn http://www.morning.zkdbx.cn.gov.cn.zkdbx.cn http://www.morning.rykmf.cn.gov.cn.rykmf.cn http://www.morning.jzlfq.cn.gov.cn.jzlfq.cn http://www.morning.xcjwm.cn.gov.cn.xcjwm.cn http://www.morning.neletea.com.gov.cn.neletea.com http://www.morning.yrhpg.cn.gov.cn.yrhpg.cn http://www.morning.wnjbn.cn.gov.cn.wnjbn.cn http://www.morning.ygbq.cn.gov.cn.ygbq.cn http://www.morning.fqyqm.cn.gov.cn.fqyqm.cn http://www.morning.ympcj.cn.gov.cn.ympcj.cn http://www.morning.glnxd.cn.gov.cn.glnxd.cn http://www.morning.frpb.cn.gov.cn.frpb.cn http://www.morning.zrgx.cn.gov.cn.zrgx.cn http://www.morning.gmysq.cn.gov.cn.gmysq.cn http://www.morning.zxfr.cn.gov.cn.zxfr.cn http://www.morning.ryxdf.cn.gov.cn.ryxdf.cn http://www.morning.ndmbz.cn.gov.cn.ndmbz.cn