首先请亲们注意一下,今天的标题是个问句,且结尾处带了个问号
为了避免误解,我先讲清楚,起这名字的原因是我溜神跑偏时看了一堆貌似无用的东西,引发了一场不务正业的探索,而不是今天打算正儿八经跟大家解释这个东西的意思
今天的插播一方面是因为后面怎么写压根想不出来,可以说思路乱得跟车祸现场一样一样的了,另一方面是缘于一个简单的操作失误
敲代码的过程中不小心在半当中磕到回车键本来不是什么大不了的事情,但是R软件有那么个比较有意思的地方,那就是当你单单就打出一个函数名,后面啥也没有的敲下回车,你会直接在终端界面上看到一个额外的帮助内容,像这样
这个内容的长度跟你输入的是什么样的函数息息相关,像是上边举出的read.csv,可以说是个解释得比较短小精悍的例子,它很直白的表达出了几层意思
1) read.csv这个读取文件的函数,本身是个function
2) 这个function做的事情,是调用read.table这个函数做文件读取,同时给出了读取过程中除了file以外的其他相关参数的默认值,像是第一行为标题行header默认为TRUE,分列符sep默认为逗号","等等
3) 支持三点参数传入,所以read.csv支持所有read.table函数能使用的参数
既然调用的是read.table,作为好奇宝宝的本人当然也会开read.table看下的啦
结果。。。出来了好长好长好长,一屏完全放不下四屏还够呛的那种长,但是,较真如我,还是冒着眼瞎的风险提炼出来一些有点意思的东西,具体见下图框框圈出来的几个地方
首先可以发现,read.table默认的参数和read.csv还是有点不一样的,像分列符号前者是空格,后者是逗号,其中原因嘛,你随手挑个csv格式的文件把后缀名改成txt再打开看看就能理解了
所以这个函数的整个步骤连起来就是,把文件按记事本的方式打开,一股脑地读入数据,再一步步整理标题、每列的数据格式,最终搞成一个data.frame形式的表
而且,那么老长的步骤里,基本上都是在不停的用if, else , else if各种判断和整理数据格式,真正意义上涉及到读取的步骤就一个,虽然上面也圈了但还是放大一下
就是它了,readLines,这才是read系背后的灵魂函数有木有
而真的到了readLines的解释步骤,就又非常简洁了,因为,它用.Internal(内部函数)这玩意儿就一言蔽之了
啥是内部函数呢?咱再看一个比基础更基础的函数,sum
呵呵哒,简洁到直接就懒得给你解释了呢,为啥咧?因为内部函数,其实已经可以说是R软件中最底层的零件了,管的都是些最基础的功能,就像是一台机器,我能给你介绍它是怎么组装起来的,但扯到上面用的一颗螺丝钉是用什么样的工艺造出来的这就有点懵逼了(真能解释到这份儿上的基本也是牛人)
然而,除了内部函数以外,还有一种函数的解释篇幅也相当简洁,那就是通用函数
所谓通用函数,有个比较直观的特点,解释内容里只放了一条UseMethod,因为它的存在意义,主要是为了敲代码时能省点事儿,所以功能近似的东西就归成一类取了个短点的通用的名字,就好比外国那些个明星,有些名儿长点的能背得出全名那基本上都算是真爱了,但大多数时候能记得住的称呼,都是像一美、抖森、石头姐、高司令这样可爱又亲切的外号
如果想凭外号找到函数它本名,请在函数前加问号?进帮助文档,一般下面都会列出来的
predict的部分本名:
想看真正的介绍还是要打函数本名滴(又是长得令人瑟瑟发抖)
虽然感觉今天还是没干啥正事,不过篇幅够了我就先下了吧,拜拜~~