r语言summary函数使用_R语言——使用apply function替代for loop循环语句

本文介绍了如何使用R语言的apply函数族(apply, lapply, sapply, tapply)替代for loop进行循环操作。通过实例展示了在矩阵、数据框和向量上的应用,以及如何通过函数限定输出结果类型和个数,提高代码执行效率。" 1536136,106503,Shutdown命令详解与用法,"['系统管理', '脚本', '命令行工具']
摘要由CSDN通过智能技术生成

公众号沉寂一个多月后,我终于又回归了!过去的这几个星期忙于期末考试,忙得焦头烂额,现在总算闲下来了。

原本这篇推送我是打算因应社会热点,从经济学的角度探讨一下争议不断的离婚冷静期,做一篇发表在Quarterly Journal of Economics上面的经济学论文的结果重现。这篇论文,Bargaining in the Shadow of the Law: Divorce Laws and Family Distress,探讨了美国的no fault unilateral divorce离婚制度对婚姻暴力的影响,不论是研究对象还是研究方法都十分经典。不过在进行结果重现的过程中,我用R始终没办法得到和作者一致的结果,而作者又是用的Stata,所以我目前还在找是哪里出现了问题。如果之后问题解决了,我会再把这篇论文推出来的。有兴趣的朋友,可以点击文末阅读原文查看这篇论文。

既然难的做不了,今天就先讲个简单的,R语言里面for loop的替代者apply function。当想到循环的时候,我们一般都是指for或者while等等。虽然我个人非常喜欢使用for loop,但是不得不承认,for loop的运算速度相对来说并没有那么快。熟悉Python的朋友想必对vectorized operations并不陌生,而apply function就相当于R的vectorized operations,虽然严格意义上来说使用apply并不能算是。今天我会介绍整个apply function的家族,包括apply()lapply()sapply()vapply()tapply()mapply()

上面这些都是R自带的命令符,除此之外,purrr工具包中也有一系列的apply function,这些不在今天的讨论范围之内。

Apply Function

apply()

假设我们有一个矩阵或者数据框,我们需要对其中的每一个元素或者每一行每一列执行同一运算。比如,有一个的矩阵,我们需要计算每一行所有值的和,我们可以使用for loop循环计算,但是这样不仅耗时,语句也不简洁。这里,我们就可以使用apply()。该命令符有三个参数,第一个X是要被执行命令的矩阵或者数据框;第二个参数MARGIN设定是对行还是列执行命令,数字1代表行,数字2代表列;第三个参数FUN设定需要执行的命令,如果该命令有额外的参数需要输入,则将其当作新的参数写进apply()里面。

### 生成矩阵
m 1:24, nrow = 6)
m
524bca8d562558193ac40c3f56527693.png

如果使用for loop计算每一列的均值,其过程稍稍有点复杂。

c for (i in 1:4) {
    
  c }
c
2236914c4adf559f9903394a5376ab4d.png

如果使用apply()就会简洁许多。


 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值