r语言:函数式编程、面向对象的一些原理
看了一眼学长发的回归和多元统计的ppt,发现还是得刚数院的课啊。
换了r的IDE,R studio确实很香,黑色界面很舒服而且有那味了。
终于发现要干的事情和流统的区别了,流统拿着方法直接应用就行,生统干的是方法学要提出新method还要写r package,夯实基础还是需要的,上次讲收敛用词错误被大佬指出深感羞愧。
介绍几个基本概念吧,写r的function或者调用函数时会容易理解一些。
1.抽象与封装
从固定的数字可以抽象出变量,那一组变量进行一堆行为(运算)也可以抽象出来叫类,r包其实就是类,也就是一个个function,我们应用r包就是调用类(函数)。封装就是r包写好以后,你调用时包里的东西就再也不会改了,你也不知道里面干的啥玩意(类似黑箱),只知道要给出的参数是什么,能达到什么结果。
2.函数的缺省
调用r包(函数)时,如果你没给参数的值的话,function会默认有个值(也是写r包的程序员写好的),你给的参数值优先级要大于默认的。这个就叫缺省,默认值叫缺省值。
3.构造函数*
这个就是一个提醒,简单说更好,就是引入新变量要赋初始值。r语言用的不是等号而是<-我觉得非常形象,就是把值放到左边的地址里(有兴趣的读者可以看一下变量与指针的关系,我们写的变量其实是一个名字而已,它指向的是一个地址,这个地址里存放的是你赋的值。)
4.继承
r的一个缺点就是包的兼容性参差不齐,更新慢,有时间的大佬们会去改写r包重新变成新的r包,或者在原来r包基础上再做一些事情(就是父亲没干完的活继承后的儿子干)
5.泛型函数与多态
summary函数其实是一个泛型函数,就是你不知道怎么写函数才能从建好的模型中获取你想要的值。泛型函数可以实现多态,就是作用于不同的模型(类,如回归模型类,聚类分析类)会有不同的结果展示。
r语言我以为最舒适的地方在于它是函数式编程,简而言之就是函数function可以是一个操作fx也可以是另一个函数的参数,不用管到底是变量还是变量组啥的,就是容错率很高,感谢开发包的大佬们!