一位余小伙儿,一位张小伙儿,俩人琢磨了几天时间,终于把我们的国际竞争力数据给修理了一遍,往后查询数据啥的都方便了。今天看了他们做的界面,很好很强大!
数据源的问题是我们做研究的大问题,国际竞争力数据时间跨度15年,里面的数据可能不是年鉴当年的,包含了六十多个国家地区以及成百个变量,麻烦的是这些乱七八糟的信息都放在不同的Excel文件中,对于做模型来说简直是一大灾难——每个人做分析都需要眼巴巴从每张Excel数据表里小心翼翼复制粘贴出自己需要的数据,这个工作不仅繁琐,而且一不小心容易出错(拜Excel所赐)。因此我认为,数据就应该放在标准的数据库中,需要的时候往外调用,而分析者不能干扰数据源。再往下我们甚至可以把分析的过程写进Sweave,这样我们连中间过程都省去了,直接从数据到报告,不用复制输出结果,也不用保存图形。不过在这之前仍然要有对数据的探索工作。
去年我曾经写过整理数据的一点代码,不过自我感觉不甚满意,这次终于有两位小伙儿把数据放进数据库了,再也不用担心Excel的各种毛病了,以后的分析将会真正走向流程化、规范化,以前大家千篇一律、群起而编书的时代将要过去,往后我们要开始脚踏实地把统计的技术活儿纳入竞争力研究的体系中来,再也不用拿着Excel天天烙大饼或折线图了。咱就等着一本高水平分析报告的出版吧!
感谢两位小伙儿为应用统计科学研究中心所做的具有划时代意义的工作!
没想到魔鬼经济学(Freakonomics)在NY Times的Blog上也写起R来了。话说昨天有这么一篇“免费的超牛牛计算软件”(Free Super-Crunching Software),作者小小赞扬了一把Excel可以多么灵活多么实用,然后介绍了一下R。后面顿时狂风大作、飞沙走石、昏天黑地。
其中,第一位留言的同学给了一篇小文档,对统计分析的人来说值得警醒。
今天看了Gregor Gorjanc的一篇小文章”Excel 2007 for statistics?“,主要是综述Excel在统计计算中的种种“罪行”。世人一向觉得Excel用起来方便(或者更多的人也许不知道这世界上还有Open Office或者Gnumeric),却不知里面各种严重问题。
其中有一段很有意思,说Microsoft在Office 2003的时候就像把Wichmann-Hill随机数发生器放进去,但是失败了(不仅会产生不在[0, 1]区间内的数字,而且会产生负值!),等到Office 2007发布的时候,这个随机数发生器还是没能被正确加入;而事实是,这个随机数发生器的代码不过是寥寥几行而已。不了解它的同志们请参考R帮助?RNG。
—————————————-我是附加题分割线—————————————-
我突然想起那个猴子打字问题,比如某动物园有100只猴子每天在键盘上随机乱敲,问它们在4年内是否可能敲出Wichmann-Hill随机数发生器的源代码?或者换一个问题,假设这段源代码已经由别人写好,请问这100只猴子在4年内有没有可能把它正确插入到Excel的源代码中?
———————————————片尾广告———————————————
广告时间到了:生物统计和生物多样性数据分析培训班。11月我将去香山讲两天R语言,这次有望大力推进一步R在国内的发展。
总有人对数据的导入/导出产生疑问,比如SPSS怎样导进LISREL,或是SAS怎样导进Stata,或是Excel怎样导进R,等等。其实一般情况下这种问题并不是什么大问题,我们总是被软件蒙蔽,猜不透数据文件背后究竟是什么,或者根本没有想过文件里面究竟是什么。我对计算机文件的机制了解并不多,我只知道两种基本的格式:ASCII格式(或纯文本格式)以及二进制格式。后者是经过某种规则编码了的,所以用纯文本编辑器打开一般看不到内容,而前者就简单多了,用任何纯文本编辑器(如记事本)都可以打开看。
纯文本格式是几乎任何软件都支持读写的,因此它可以成为软件之间互相“沟通”的桥梁。比如Excel可以另存为CSV文件,然后由R用read.csv()读进来或者由SPSS的Read Text Data导进去,等等。所以一般情况下通过纯文本文件行事就足够了。
统计数据的形式一般都是二维表格,行为观测,列为变量;纯文本数据中当然要想办法将行列用一定的标志区分开来。对于行,当然就是换行符(例如回车),这没什么好说的,用编辑器打开看到就是一行一行的;对于列,则稍有不同,这就涉及到分隔符(separator / delimiter)的问题了,它们的作用就像是Excel或者其它表格软件中的网格线一样,将一列一列分隔开来,每一列对应一个变量,分隔符可以是任何字符,但常见的一般是逗号(,)或者制表符(\t,Tab)。所谓CSV文件,也就是以逗号为分隔符的纯文本文件,我们可以将Excel数据存为CSV格式,然后用记事本打开看看就明白了。Windows下CSV文件(*.csv)的图标一般是Excel的图标,其实这是很具有误导性的,CSV与Excel毫无关系,只是纯文本文件的一种而已。
这是关于数据的很基础的知识,但我发现很多人并不明白。怪哉。
纯文本文件之外的统计数据我通常推荐采用专门的数据库作为存储工具(尤其是支持SQL的数据库),而不是Excel或SPSS等软件,用数据库捣腾数据一方面比那些看起来易用的Excel或SPSS更高效,另一方面也比较安全。前面我刚刚谈过这个问题。
从今以后,关于数据导入/导出的邮件我也将不再回复。
假设单元格A1为空,那么若在B1中写公式 “=A1″ 的话,则B1=0,显然这是不对的。在捣腾数据的时候慎用Excel。

近期评论