我们在上周举办了一个小的抽奖活动,让大家说一说自己的“aha moment”,总共有16位读者参与。
一张神图,解决科研统计80%的问题。
如何抽奖呢,我就用R语言中的sample
函数来搞定,因为线下课的时候,我也是用这个函数来点名的。
接下来我们就讲讲sample
这个函数,简单来说,你告诉他从哪抽取,抽多少即可。
比如,从1:10中随机抽取3个数,因为是随机的,每次都不一样。
这是从多的里面抽取少的,没问题,但是要从少的里面抽多的,就会报错,比如,从A,B,C中抽取10个字母
报错了怎么办?
不要走,认真看!
读不懂就用
?
来看。
?sample
我们发现他有一个参数叫
replace
被设置为了
FALSE
,读一下知道,这个参数允许可放回抽样么,少一点没问题,只要允许我每次抽了放回去就可以。我们把他设置
TRUE
就可以。
这就是参数的魔力,写得好的函数,有很多参数,用来拓展主函数的功能。
比如为了实现,把1重复1次,2重复2次,3重复3次这种操作,我用过mapply
,还专门写过一个荡气回肠的帖子,用11s解决了11个小时的运算。
迷人的多参数批量函数mapply
那个里面我是这样解决的。之后多参数的批量就首先想到mapply
,还有一个就是Reduce
,这个函数在miRNA数据批量读取的时候会很有用。
巧合的是,这两个函数都跟赵飞有关。
上次上课的时候,不小心读了一下rep
这个函数的文档,人家文档里面清楚地写作,我们支持多参数重复。
也就是说他可以方便地实现这个操作
rep(1
大道至简就是这个感觉哈,基础函数那500行代码应该好好掌握一下。
最后,因为我吹了牛,说rep
函数可以生成99乘法口诀表,但是我现在实现不了,当实现不了批量操作的时候,一定要告诉自己,for循环,没问题。
每一个R语言初学者都应该掌握for循环!
for(i
我是果子,我很喜欢在果子学生信写作的感觉,明天见。