r语言summary函数使用

您所在的位置:网站首页 r语言里summary r语言summary函数使用

r语言summary函数使用

2023-10-23 01:26| 来源: 网络整理| 查看: 265

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

原本这篇推送我是打算因应社会热点,从经济学的角度探讨一下争议不断的离婚冷静期,做一篇发表在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()就会简洁许多。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3