R语言,我们做朋友吧
R语言这个东西貌似我已经连续纠结了两个星期,但准确来说我只是纠结了两个周五,再准确一点,应该是纠结了两个周五的半天,因为我大概都是从中午吃完饭开始折腾的。到昨天为止,经过不懈的努力,貌似最终我已经做出了自己想要的效果。理论上,这本来应该是比较简单的事情,但是现实总是不如我想象中的那样。比如说R语言把我觉得那些日期的东西他们只认为是文本,所以没办法对那个进行自动排序,于是我也就只能把那些日期用数字表达出来,然后我再用替换的方式把数据换成我想要的文本,这样做挺折腾。上个星期我折腾我的还有输出绘图框的大小。理论上,作为一个可视化的软件,那个东西应该可以在系统的某些地方修改,但因为那个软件是开源的,而且自主操控性也很强,所以在系统的可选界面没有那个选项,于是上个星期我也就只能很傻地在显示器上边框做记号,大概记录我那个绘图框的大小。因为最终绘图框得出来的图,我要把它粘到Word文档里的。或许你会说我不应该这么直接粘,而应该把R语言绘制出来的图输出成图片,然后再往Word里粘,但我觉得貌似那样做的话图片质量会更差,还不如我直接把图片在R语言里粘过去,但要保证每张图片的大小都一样的话,实在让我很烦恼。即便我在显示器的边框上已经做好标记,但最终出来的东西还是不能保证完全一致。昨天,我终于征服了这个东西。如果我用的是R语言基本的绘图功能,控制那个东西的是另外一个选项,但因为我的图用到的是lattice包,所以我就必须采用lattice包适用的方式。能控制输出绘图框的大小,已经让我解脱了一大半。
之前,我绘图所用的数据,都是我经过了各种精简筛选保存下来的csv文件,因为如果直接导入Excel文件会很麻烦,所以我宁愿在Excel里另存csv文件。我要作图的数据其实都在一个大表里,但是我却要作好几个图,那些图需要对不同范围内的数据进行合并对比。我也非常清楚R语言在增加或者剔除数据方面有他的方法,学会这一招,我就不需要保存N个csv文件,我只需要保存一个,然后再一层一层地往下筛选。在Excel里进行数据筛选,你就只需要在下拉框里选择,而在R语言里,你需要编程。对新手来说的确挺麻烦,但我觉得只要熟练了,一切都好。昨天晚上我追我征服的是修改绘图区域的空白边距。因为我输出的绘图框较小,而R语言默认的空白边距在那个小图里就显得很大。一开始我想到的是自行修改lattice包里面的默认选项,但后来我选择的是拷贝一个别人写的自定义函数,引用那个函数就把可以去掉的空白全部干掉了。因为去掉了多余的空白,所以我图片的尺寸可以更小,但是实际上里面的内容更大。
R语言非常强大,我觉得这个东西不是为应付工作的人准备的,因为没有一定的折腾信仰,这根本玩不过来。但我觉得,这个东西很符合我的口味,因为的那里的奇迹是通过编程出来的,在处理数据方面效率非常高。如果我用同样的数据在Excel里面作图,即便我用的已经是最新的版本,但依然会卡机。R语言的神奇控制只有你想不到,没有你做不到,只要你能力超强,天马行空无所不能,我就喜欢这种自由。