作者celestialgod (天)
看板R_Language
标题[分享] magrittr补充说明
时间Thu Dec 31 13:37:18 2015
※ [本文转录自 Statistics 看板 #1MTMWLYa ]
作者: celestialgod (天) 看板: Statistics
标题: Re: [问题] 中央极限定理
时间: Sat Dec 19 22:22:06 2015
应A大要求,解释一下程式
library(magrittr)
# 载入%>%跟%T>%运算子
# %>% 解释
# 现在有一个函数f,有一个input,假设为a
# 一般上,我们可以使用f(a)得到回传值
# 而%>% 可以把LHS当作RHS的函数的第一个input
# 因此,透过 a %>% f 或是 a %>% f() 都等同於 f(a)
# 同理,如果现在还有一个函数g,有两个input,x跟y
# g(x,y)等同於 x %>% g(y)
# 但是如果我们想要让他指定第二个位置呢?这时候就要透过 .跟{}实现
# .就是LHS的代替符号,所以其实 a %>% f() 等同於 a %>% f(.)
# 所以我们可以g(x,y)写成 y %>% {g(x, .)}
# 其中{}的功能是建立一个block,不直接传导引数到函数的第一个input
# 而%>%最大的好处是节省temporary variable
# 像是我现在x = f(a), z = g(x, y),我最後只要z的话
# 可以直接写成 z = a %>% f %>% g(y),这一个可能需要花一点时间体会
# %T>% 解释
# 其实就是只做传导的%>%,不做回传动作。
# 写 b <- a %T>% f 的话就是b会等於a,而R console会列出f(a)的值
# 根据这个特性如果我写成 b = 1:5 %T>% plot
# b会等於1, 2, 3, 4, 5,而图也会同时出现
我这里用另外一种方式去解释%>%跟%T>%,我之前曾在R_Language写过相关的文章
之前写的时候用另一个方向去写,也可以参考看看,附上我之前写的文章:
https://webptt.com/cn.aspx?n=bbs/R_Language/M.1437452331.A.CD1.html
dat = rep(c(90:98, 5), 10)
# 创建母体,5分、90~98分各10人
x <- 1e4 %>% replicate(mean(sample(dat, 50))) %T>%
{
qqnorm(.)
qqline(.)
}
其实把上面这段用一般写法就会变成:
x <- replicate(1e4, mean(sample(dat, 50)))
qqnorm(x)
qqline(x)
※ 引述《allen1985 (我要低调 拯救形象)》之铭言:
: ※ 引述《baltimore (WYC)》之铭言:
: : 我想请教一个问题,我是大一的学生,最近看到中央极限定理非常搞不懂,我看到老师的
: : 讲义写说不论母群的分布为何,只要n够大,样本平均数的抽样分布一定接近常态分配。
: : 但是假设有一个考试成绩是这样:95%学生成绩是90分以上,1%学生成绩10分以下,这样还
: : 会是接近常态分配吗?我一直觉得很怪,之前有关中央极限定理的文我有看过但是看不懂
: : @@还有我是心理系的,不知道我学的跟统计系的相比是不是有所增减,谢谢
: : 另外我应该会常常上来问问题XD 麻烦各位版友了
: 小弟我对於中央极限定理 虽然很久以前就听过了 但也并非了解得十分透彻
: 前面推文中 提到了一些 此定理的必要条件 非常的严谨 非常的好
: 但我想对於一个大一生 可能有听没办法懂 毕竟可能连积分都还不会 何况是动差
: 所以我希望原po能知道 你原先的叙述很不完整 如果想知道更清楚的
: 如果有哪些名词不懂的 欢迎再问
: 不晓得可不可以利用以下实验 让原po对中央极限定理更有概念
: 这只是我脑中闪过的念头 希望此实验没有太大问题
: 首先 我们可以假设 母体总共有100个学生成绩好了
: 90分10个 91分10个 92分10个 93分10个 94分10个
: 95分10个 96分10个 97分10个 98分10个 5分10个
: 请原po每次随机抽样 50个学生的成绩 算其平均数 总共抽个10次
: 然後 看看这10次平均数分配会不会有点像常态
: 我不知道结果会不会像 希望对原po有一些帮助
--
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 180.218.154.163
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Statistics/M.1450534933.A.8A4.html
1F:推 allen1985: 感谢 原本虽然我不知道这你的code怎麽运作 12/19 22:36
好
2F:→ allen1985: 但我知道 sample 怎麽运作 所以我可以稍微改一下 12/19 22:37
3F:→ allen1985: 感谢 我又学到新东西了 嘿嘿 12/19 22:37
不客气XD
※ 编辑: celestialgod (180.218.154.163), 12/19/2015 23:16:22
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 转录者: celestialgod (140.109.74.87), 12/31/2015 13:37:18
4F:→ celestialgod: 转录过来收精华 12/31 13:37