2020-02
14

入门R语言

By xrspook @ 9:14:06 归类于: 烂日记

我前天开始系统地学习R语言,用的是一本叫做《R语言统计入门(第二版)》的书。那本书从最最基础的东西开始说起,基本可以说是零基础也能学会。我去说,书里面的内容是统计学和工科大一学生应该掌握的基本概念。现在我只看了一点点,感觉挺有趣,有些东西很容易理解,但有些东西却要绕一个弯。其实之所以这样,是因为R语言设置了很多潜规则。跟我之前学过的C语言不一样,R语言的潜规则多得多,也正是因为,它固有的规则多,所以有些东西毫不费劲就可以得出一个高端的结果。比如,当你要算一个数组的平均值,又或者是标准差的时候,一个简单到爆的函数就搞定了。如果要手工实现那个函数,真的很费神。我觉得R语言这个东西,只要你领会到规则的制定方法,很多东西都可以融会贯通。重点就是你能不能领会到那个精神,消化他们的东西成为自己的一部分。Excel的VBA里面也有很多潜规则,但是,跟R语言比起来,Excel里的很多东西貌似就有点复杂麻烦了,比如说,连起个名字,Excel里面的东西都要比R语言长。

我觉得对我来说,学习R语言跟学习Excel VBA,虽然都是编程语言,但二者不一样。VBA更侧重于技术实现的层面,要解决一些具体的东西,之所以要写VBA,不是要做研究,而是要得出某些结果,通过简单的操作就可以把复杂的流程秒杀搞定。其中的逻辑在写VBA程序的时候就必须已经想得很透彻。又或者可以这么说,在写VBA的时候,实际上你已经通过其它方式,得出了一个你要得到的结论。虽然你不可能所有数据都已经得有结论,但起码在某些数据上面,你已经确信那就是你想要的结果。大概因为我对R语言还了解得不够透彻,所以我觉得R语言最看重的不是结果本身,你不是为了要验证某个结果而去用R语言,而是要让R语言帮助你找到某些东西的规律。

之所以认会到R语言,是因为它有强大的绘图功能,几乎可以这么说,只有你想不到,没有它做不到的。R语言做出来的那些图,跟艺术家很写意地画出来的不一样,R语言做出来的图都是根据某些数据按照某些规则合并计算而来。有些数据摆在一起,我们不运行软件,也能预测到那估计是一个什么样的趋势。在一开始的时候,我们必须了解这个趋势,当R语言把图做出来的时候,我们才可以判定我们的方法有没有用错。当R语言我们已经用得很熟练的时候,我们可以要把我们的数据放到R语言里,然后通过某些我们已经应用成熟的方法让软件给我们得出图像,接着我们再从图像里得出某些结论。

不知道从什么时候开始,我迷上了数据可视化。把一堆数据用表格体现出来,和用图像表达出来效果很不一样。如果图做得好的话,那会给人一种惊艳的效果。如果你只看到一堆表,你的大脑还得寻找表格里数据的相关性,然后在脑子里想象出它们应有的关系。在靠谱的图里面,数据关系直截了当很明白,无论你是老手还是小朋友,在看图的时候,你都能很直观地感受到。

有时我会想,为什么现在理工科的学生仍然要学习C语言,而不直接学习R语言呢?尤其是那些非计算机专业的。理工科学生的课程里必然会遇到带入各种实验和数据分析。不过呢,大学的课程连Excel都不会很细致地讲明白,他们又怎么会把R语言放在眼里呢。

编程语言是种必需掌握的技能,谁是你的菜就得看这个社会推动的是哪种,又或者是你打算用在哪个领域了。

2019-12
18

模拟器上运行语记

By xrspook @ 9:11:25 归类于: 烂日记

我的红米Note7拿去充电以后,我打算拿从前的小米4c出来用语记校对我的年终总结,但是打开手机后却发现小米4c上的语记已经被我卸载了。当我打算重新连上网络的时候,却发现一连接WiFi,手机就会关机。之前我就料到连接WiFi的时候那台手机会关机,所以我已经把USB线插在电脑的USB口,但这样并不能阻止手机关机,甚至关机以后连机都开不了了,后来。我把USB线插到了充电器上才总算解决了手机一连WiFi就自动关机的问题。一台只能插着手机标配充电线才能开机上网的手机真的可以说是无药可救了,因为一边插电一边使用手机必然会导致手机严重发烫。从前的笔记本电脑我们都是习惯一边插电一边使用的,因为不插电的话,笔记本电脑坚持不了多久,但现在无论是智能手机还是笔记本电脑。一边插电一边使用会严重损耗电池的寿命,让机器发烫。虽然插着电的笔记本电脑性能肯定要比没插电的时候好,因为插电的时候CPU没有电量的烦恼,所以可以去到最大值,之所以有这个结论,是因为我的荣耀笔记本电脑买回来的时候我就去过不插电和插电的情况下压片,结果发现了这个。显然,在使用笔记本电脑的时候插电会比不插电机器更容易发烫,手机使用也是同样的道理。我觉得笔记本不过是一个更大的智能手机而已。不少人就是因为,一边插电一边打机导致悲剧发生了。昨天单位办公室的网速大概是被限制了,只有100KB左右的速度。这种速度甚至比不上连上4G,但显然我没有那么多流量可以耗费,而且我的小米4c上也没有安装电话卡,当然我可以用安装了电话卡的手机做热点给我的小米4c,但显然那样就太奢侈了。既然小米4c即便能连上网络,即便能把语记APP下载回来仍不确定能不能正常使用,我不如用别的方法。

于是我就在电脑上下载了语记的安卓APP,然后在安卓模拟器上安装。我使用的安卓模拟器是蓝叠,那个东西部分APP在上面是无法运行的,比如说曾经我也打算在上面安装一堆的阿里合伙人,准备在双11的时候打卡,接着我发现几乎没有一个可以正常运行。幸好语记可以在蓝叠上正常运行,而且感觉还不错。虽然字体有点怪异,那可能是因为分辨率过低的问题,能运行我就已经很满足。我不过是要借用软件朗读而已。当我把Word里面的东西直接复制到安卓模拟器上面的语记的时候,不知道为什么一定程度会不会就会出现错误的符号,所以我只能在网页版上把文字复制过去,然后在模拟器里把文件打开。之所以这么折腾,是因为语记这个神经病只有在手机APP上才有朗读功能,在网页版又或者PC版的软件里只能编辑文件。PC版你可以语音录入,但是却没有朗读这个功能。语记的朗读功能跟Office365自带的那个相比,语记实在是太完美了,Office365自带的那个从前不支持中文,现在支持中文了,但是当文章里含有数字的时候,它就会自动转为为英文模式,然后直接忽略数字和字母之间的所有中文。如果通篇都是中文的话,没什么问题,但如果里面有数字或者字母,Office365的朗读功能就变成了一个神经病的存在。语记在朗读中文或英文的时候都没有任何问题,甚至在读一串数字的时候还会给你说清楚个十百千,断句也很准确,有时我甚至觉得语记读得比我自己还好。不得不说,在中文语音方面,中国的公司已经做得很好。虽然我不确定语音被识别以后,还得进行翻译,到了另外一种语言会是一个什么状态。

反正我个人觉得,语记已经成为我校对各种文章又或者各种字幕必不可少的助手了。

2019-12
14

R语言,我们做朋友吧

By xrspook @ 21:11:49 归类于: 烂日记

R语言这个东西貌似我已经连续纠结了两个星期,但准确来说我只是纠结了两个周五,再准确一点,应该是纠结了两个周五的半天,因为我大概都是从中午吃完饭开始折腾的。到昨天为止,经过不懈的努力,貌似最终我已经做出了自己想要的效果。理论上,这本来应该是比较简单的事情,但是现实总是不如我想象中的那样。比如说R语言把我觉得那些日期的东西他们只认为是文本,所以没办法对那个进行自动排序,于是我也就只能把那些日期用数字表达出来,然后我再用替换的方式把数据换成我想要的文本,这样做挺折腾。上个星期我折腾我的还有输出绘图框的大小。理论上,作为一个可视化的软件,那个东西应该可以在系统的某些地方修改,但因为那个软件是开源的,而且自主操控性也很强,所以在系统的可选界面没有那个选项,于是上个星期我也就只能很傻地在显示器上边框做记号,大概记录我那个绘图框的大小。因为最终绘图框得出来的图,我要把它粘到Word文档里的。或许你会说我不应该这么直接粘,而应该把R语言绘制出来的图输出成图片,然后再往Word里粘,但我觉得貌似那样做的话图片质量会更差,还不如我直接把图片在R语言里粘过去,但要保证每张图片的大小都一样的话,实在让我很烦恼。即便我在显示器的边框上已经做好标记,但最终出来的东西还是不能保证完全一致。昨天,我终于征服了这个东西。如果我用的是R语言基本的绘图功能,控制那个东西的是另外一个选项,但因为我的图用到的是lattice包,所以我就必须采用lattice包适用的方式。能控制输出绘图框的大小,已经让我解脱了一大半。

之前,我绘图所用的数据,都是我经过了各种精简筛选保存下来的csv文件,因为如果直接导入Excel文件会很麻烦,所以我宁愿在Excel里另存csv文件。我要作图的数据其实都在一个大表里,但是我却要作好几个图,那些图需要对不同范围内的数据进行合并对比。我也非常清楚R语言在增加或者剔除数据方面有他的方法,学会这一招,我就不需要保存N个csv文件,我只需要保存一个,然后再一层一层地往下筛选。在Excel里进行数据筛选,你就只需要在下拉框里选择,而在R语言里,你需要编程。对新手来说的确挺麻烦,但我觉得只要熟练了,一切都好。昨天晚上我追我征服的是修改绘图区域的空白边距。因为我输出的绘图框较小,而R语言默认的空白边距在那个小图里就显得很大。一开始我想到的是自行修改lattice包里面的默认选项,但后来我选择的是拷贝一个别人写的自定义函数,引用那个函数就把可以去掉的空白全部干掉了。因为去掉了多余的空白,所以我图片的尺寸可以更小,但是实际上里面的内容更大。

R语言非常强大,我觉得这个东西不是为应付工作的人准备的,因为没有一定的折腾信仰,这根本玩不过来。但我觉得,这个东西很符合我的口味,因为的那里的奇迹是通过编程出来的,在处理数据方面效率非常高。如果我用同样的数据在Excel里面作图,即便我用的已经是最新的版本,但依然会卡机。R语言的神奇控制只有你想不到,没有你做不到,只要你能力超强,天马行空无所不能,我就喜欢这种自由。

2019-12
13

不能乱扯爱国

By xrspook @ 9:20:30 归类于: 烂日记

在中美贸易战打得如火如荼到现在我们经常会听到这么一个说法,用华为的人就是爱国。华为跟爱国到底有什么必然关系呢?!世界上除了华为还和苹果,还有非常多的手机品牌,为什么除了华为就只能苹果,除了爱国就只有不爱国呢?!虽然用苹果的人我们不能称之为不爱国,但是既然有了上联,自然而然就会让人联想起下联。之所以我们不能说用苹果的人不爱国,倒不是因为我们真的不能这么说,是因为有权有势的人没有哪个是不用苹果的,起码在贸易战之前,是这么回事。

在非智能手机的时代,我甚至不知道华为是什么东西,当时我就只觉得华为是一个根电信勾结的东西,经常跟路由器、modern什么的扯上关系。但是,华为的modern或者路由器又经常是那种非常非常烂的货色。比如说不知道为什么你就会连不上网络,有可能是因为那个东西温度太高了,但为什么温度会太高呢?不知道。也有可能是你升级了网络,网速太快了,但是那个东西不能支持。当然还有一些普通用户不知道是什么原因,打电话投诉,叫人上门来检查,检查的人搞了两下,二话不说就直接把你的新modern换走,也不跟你说是什么原因,反正就是你的那个不行了,给你免费换一个,但问题就是,换回来的那个是很旧很旧的样子,估计是个翻新机。在智能手机搞得牛逼轰轰之前,我一直对华为的印象非常差。当然这也包括我知道我高中的一个同学之前在华为,被派去南美某个国家搞业务,但是因为那个地方真的没什么好搞的,所以他打算辞职回来,但问题是华为的人拒绝把护照还他,他回不来,也就只能在那里打工。工作了几年,终于拿回了护照,终于可以回来。

虽然我是看着华为在智能手机以及其它方面雄起的,但是,现在回想过去这几年,我真的不知道这到底发生了什么。从前我不信任华为,现在也一样。无论大家把它吹得多么的好,我仍然是心有芥蒂。一个甚至不能储存好你通讯录的云你怎么敢把其它东西放在它那里同步。上传的时候耗费流量,要把资料拿回来的时候难过登天,还不如自己老老实实把U盘握在手里。还有就是那些专门设计欺负人的界面,那完全就是欺负老人家不懂智能手机。把没必要的东西摊开放桌面,把应用市场下载安装好的东西放在遥远的角落里,这些完全就是店大欺客的行为。不是价钱越高就一定服务越好,哪怕硬件你吹到天上去,那都仍然是一个非常官僚的东西。从前是这样,现在更加是这样。

还记得国庆期间上映3部主旋律电影的时候,我和我妈都去看了。我的党员同事跟我说,他还一部都没看过,他说我是比党员更爱国。我觉得这句话非常有问题,为什么最爱国就一定是党员呢?!党员爱国爱党这是必须的,但普通老百姓爱国这没有半点问题。老板姓入不入党是个人的选择,从来没有一条规定说爱国的人就必须入党。

什么买华为当党员就爱国这种事,我觉得相当狗屁。如果爱国就等于这么简单地随大流做跟随的话,这个所谓的“国”也是一个随便都能换掉不值钱的东西。

2019-12
7

2020年的目标:学习R语言

By xrspook @ 21:57:29 归类于: 烂日记

昨天我花了很多时间去研究R语言里面的绘图。R语言这种东西是今年夏天我才开始接触的,当时我看的是head first系列的数据分析。在这本书里面,R语言用得非常多。首次接触那个东西时我就觉得,那个比Excel厉害太多了。作图这种东西,貌似是美工,但实际上,在R语言里面,只要你想得出来,你就可以通过编程去实现,牛逼轰轰的。无论你想得出的,又或者是想不出的功能,它都能做到。突然之间我觉得自己在统计分析这个问题上真的是个白痴。一直以来我都觉得自己在理论知识方面很缺乏,但原来我在技术的使用方面更加是井底之蛙。如果我要提高我的理论水平,如果直接从案例从技术方面入手,也是可以实现的。我得知道别人是怎么做的。别人用什么方式去实现的。为什么别人可以从那个视角去分析问题,而我却没想到。同样的原始数据,为什么别人就能揪出一些我没想到的东西。这一点我必须努力加把劲探索。

昨天从中午开始我就纠结R语言的散点图。散点图这种东西,Excel里也能做,但问题是Excel里面没办法做出矩阵散点图。之所以我中午开始纠结R语言,因为我在几个月前到数据分析教程里知道学习里知道了R语言可以用几句非常简单的编程,绘制出神一般的的矩阵散点图。矩阵散点图这个东西,第一次看到就把我惊呆了。在那之前我见过的散点图只是两坐标或者三坐标上面标注点,绝大多数情况下我只看到过两坐标的。我们大都从点的分布,点的密度,点的聚集模式得出一些规律,找到一些结论。这是以前我一直在做的,我也只看到别人做到了那个程度,但在今年夏天我学习的那本数据分析里面,他们用两维数据作出一个散点图,在用第三维数据对比N个散点图。这些矩阵散点图是一次性做出来的,并不需要一个个的手动合并,而且那些散点图也不需要手工去设行列数。你只需要提出处理数据的要求,他们就会选择最佳的方式表达出来。第一次看到那个的时候,我觉得那简直是屌爆了!前几天我也尝试过用我的数据做矩阵散点图。后来发现,别说散点图,即便是要我提供一个能正确读取数据的csv文件好像也很麻烦。昨天中午,当我把一个一个Excel做出来的散点图罗列堆砌到Word里的时候,我明白到如果只是一两个,没问题,但我需要2个散点图一起做对比,4个散点图一并罗列出来找差异,显然只能使用矩阵散点图的方式,而不能一个一个贴浪费篇幅且让人疲劳。

在学习数据分析那本书的时候,虽然我也用过R语言,但是那纯粹是把书本上的命令行抄写过去,我完全没有动脑筋,所以当我把自己的数据放到R语言里面处理,希望得到我想要的东西的时候,无论我怎么纠结,貌似都得不出我想要的东西。在奋斗了几个小时以后,我才发现原来plot跟xyplot是两个完全不一样东西。plot是R语言的一个原生作图函数,xyplot则需要调用lattice数据包。数据包就像是一个插件,不过lattice那个插件已经常规到已经默认安装在R语言的主体软件里。在折腾的时候,我因为发现plot函数xyplot函数得出来的图不一样,我才明白到了这点。最明显的区别是他俩的图形颜色不一样,坐标轴的字体不一样,以及坐标轴的刻度分布不一样。我个人觉得lattice数据包作出来的图要比R语言原生的好看一些。

昨天我足足折腾了接近12个小时,才稍微得到了我想要的东西。之所以说稍微,是因为某些因素我还不能自如控制,有些参数我纯粹只是停留在猜想的层面。我不能满足自己只知道一些。我也知道有一些轻量级的作图软件大概也可以做到我想要的功能,但既然R语言如此强大,我愿意花更多的时间去认识他拥抱他。

用编程的方式去作图,想想都觉得这实在太牛逼了。于是,昨天晚上我也定下了目标,2020年我要加把劲学习R语言。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress