晚上正在做“天马行空”的《统计研究》的作业,宿舍的同学跑过来了问了个问题。问题的内容大致如下,有一个 Excel 表格,如下图

2011-4-8-1

图中的每个单元格里,以空格为连接符,包含了一个或多个公司的名称。我们的目的是把这些公司的名称提取出来,然后分别统计公司的频数。看到问题后,我想了一下,这里面大概是有两个问题,首先是要以空格为分割符,将公司的名称先提取出来。这时会碰到第二个问题,即有些公司的名称中,本身是包含空格的,比如上面的Infinity Venture,这样的公司会被分解为两个公司。第一个问题还好解决,我想出了两种方法。

第一种,迂回完成。先将Excel中的内容复制到记事本中,然后再导回到Excel中,这样公司的名称就自然被分开了。这里遇到一个小问题,当把Excel中的内容复制到记事本中后,原本整齐的数据,突然间莫名地出现了许多“?”号,想来可能是编码问题。也好解决,用Word打开记事本,将所有的“?”号替换成为空格,然后再导入到Excel中,得到了想要的效果。

第二种,用VBA。用第一种方法做完后,我就想用VBA来做一下试试。尽管对于这个问题,VBA并没有前一种方法直观,但是我想趁机复习一下VBA的语法,还有字符串函数的用法,于是就“杀鸡用牛刀”了。坦白地讲,作为一个统计专业的学生,我的Excel水平是不过关的,对于里面的函数、作图,都不熟悉,遇到问题总喜欢自己DIY个宏来解决。有时候可能费了半天的劲写出个程序,别人用一个函数就可以搞定同样的工作。但是我个人认为自己写的东西,能使人有一种成就感,在看到结果的一刹那,那种感觉只用一个词来形容——Fantastic。

于是几分钟后,下面这个程序就出现在了电脑里。

Option Explicit

Sub Split_Space()
Sheet3.Activate
Dim i, j, k, n, u As Integer
Dim rng As Range

Set rng = Range("A65536").End(xlUp)
n = rng.Row

j = 0

For i = 1 To n
    u = UBound(Split(Cells(i, 1), ","))
    For k = 0 To u
        j = j + 1
        Cells(j, 3) = Split(Cells(i, 1), ",")(k)
    Next
Next

End Sub

但是程序写完后,总是运行出错。逐句检查,发现问题大概是出现在split函数上,然后纠结了半天,总是找不出具体的问题所在。有一个奇怪的症状是,split函数本来应该返回单元格中的字符串数(默认以空格为分割符),但是在这个程序中它的返回值竟然一直是0!这说明函数压根就没起作用……正在疑惑中,突然想起刚才把单元格内容复制到记事本中,出现了许多的“?”号,莫非是这些问号在作怪?于是把所有的分割符都替换成了“,”号,然后再运行程序,成功通过。

经过这个事例,我总结出了一句话。我小的时候,喜欢看一部新加坡电视剧,《力克千年虫》。里面有一句台词,给我留下的印象很深,“你所看到的事实,不一定是事实”。套用到这里就是,你所看到的空白,不一定都是空格。

 

当初想写个博客,但又不想在大的博客网站上挂着,因此便走了独立博客这条路。万事开头难,准备工作着实费了一番功夫,其间也走了不少弯路。首先就是主机的选择,由于当初没有信用卡,因此主机的选择面窄了很多,只能选择支持支付宝的主机运营商。不幸误入ixwebhosting,这主机就一个特点——慢,打开我的博客首页(也就30来KB),至少得20秒种,极度考验人的耐心。后来我忍无可忍,退款处理。换到了现在所用的这家主机商——WOPUS,主机的问题总算才算圆满解决。但是在两个主机交接的过程中,又出了一些小问题。由于没有经验,我在注册ix时,也顺便注册了一个域名(就是现在的这个blog496)。在退掉ix的主机后,没想到我竟然无法更改域名的DNS了……而且当时域名刚刚注册,还没有超过转出的时限,我只好又等了一段日子才把域名转移到了Godaddy。

这个Godaddy的服务确实不错,但是它的管理界面实在是太极品了,广告一大堆,选项总躲在你找不到的角落……于是,当我前些天注册wxw.name的域名时,一眼就被name.com的清爽界面吸引住了。而此时我的两个域名也将要到期,于是索性就把他们全都转到name来,把过程记录如下。

Continue reading »

 

话说明年一月,俺的小本就将年满五周岁,在笔记本家族里,这个岁数虽然算不上是耄耋之年,但称得上是年逾花甲了。由鲁大师里的硬件评测来看,硬盘运行2600次,时长10939小时。从买来到现在,主操作系统一直都是XP,因为随机附赠的是XP的系统盘,尽管只是OEM版,但是日常使用足够了。有一段时间,确切地说是从08年到现在,机器里一直装的是双系统。主角始终是XP,配角历经红旗Linux,Ubunt8.04,9.04,10.04。前几天在太云的鼓动下,换上了Linux Mint。原以为Ubuntu在易用性上做的已经很好了,没想到Linux Mint还要更胜一筹。

昨天中午,脑袋突发奇想,想试试传说中好评甚多的Win7。心动不如行动,于是上网查了一下Win7的配置要求,1G的cpu,1G的内存,16G的硬盘空间,128M显卡,没想到我小本还真能满足最低配置……有一点麻烦的是,C盘的空间不够,需要从其他地方分出一些来。按说从56G硬盘里找出20G的空间来应该不难,但是在曾经的XP时代,我的C盘空间一直只有10G(可用空间能保持在5.7G以上),要想找出另外10G,只能从Linux开刀了。

Continue reading »

 

杀软,他的中文名字叫杀毒软件,他的英文名字叫Anti-virus Software。传说中,他有着监控识别、查杀病毒的巨大力量。可能是由于杀毒软件名字过于单一,如今的杀软们很多都换了个马甲,叫安全套装。这其中,有免费的,有付费的,有国产的,也有国外的,打着的旗号也很多,诸如”主动防御”,”云计算”之类,看得人眼花缭乱,听得人一头雾水。其实,咱普通用户图的就是个实在,不管软件叫得如何响亮,只要能让我的机器远离病毒就成,当然,花费越少越好。于是网上就出现了各种杀软件的破解版,以及注册机等工具。也有很多用户转向了免费杀毒软件,比如近来和腾讯杀得火热的360。

当年我买这台旭日125A的时候,联想给预装的杀软是诺顿2004,使用雅虎邮箱的筒子们对它应该不会陌生。杀软的有效期貌似是两年,但是不到一年我就换了瑞星。因为使用诺顿时,我的机器内存是骇人听闻的256M,无论运行什么程序,都卡得要命,所以到底是内存的限制,还是诺顿的”功劳”,至今仍是一个谜。不过自从瑞星驾到后,我的内存升级到了768M,电脑运行流畅了许多。除了瑞星杀毒软件,我还装了瑞星防火墙,现在想想,防火墙这玩意儿似乎没起过作用,瑞星狮子也一直在墙内睡觉,一直睡到我的内存升级到1.5G。使用瑞星的唯一收获是,上瑞星防病毒论坛次数增加,学到了一些防病毒的知识和相关的软件使用方法。瑞星到期后,我换上了免费三个月的东方微点,此公司和瑞星有些宿怨,瑞星曾经使用不光彩的手段打击过东方微点。微点之后就是小红伞,直到前些日子抽风决定卸掉杀软,电脑开始”祼奔”。

Continue reading »

 

自从装了丘丘软件管理后,隔两天,就会提示某款软件需要升级。这其中,最频繁的要算chrome,开始的时候我没太在意,结果升级之后出现了一些问题。先是机器从休眠中恢复时,chrome必然崩溃,接着正常使用时也会莫名其妙地崩溃。如此频繁的崩溃弄得我也快弄崩溃了,同时也很疑惑:除了刚推出的那段时间,chrome一直都是比较稳定的,怎么会突然出现频繁崩溃的情况呢?带着疑问在网上一搜,原来问题是出在版本上。QQ软件管理中,chrome的版本一直是6.0以上,而google官方的版本是5.0,这个5.0才是稳定版本,6.0仍然处在测试阶段。于是二话不说,立刻换成稳定版本,果然立杆见影,崩溃的毛病再也没出现过。

类似的问题,我是碰到过的。现在使用的博客系统wordpress,已经推出了最新版本3.0.1,但是我仍然在使用2.9.2。看看3.0.1的新功能,有些的确很诱人,但这其中没有一项是适合我的,因此换成最新版对我来说,风险要远远大于收益。当然,曾经折腾电脑的“血泪史”,也警示我把“不折腾”的原则放在首位。如果非得折腾,那也一定是带着目的去折腾,否则极可能到最后已经背离了我们使用软件的初衷,造成舍本逐末的情况,最典型的例子就是R编辑器的折腾过程。

Continue reading »

 

一般来说,能够看到这篇文章的人,都正在使用计算机。计算机这东西,和人一样,都包括硬件和软件。所不同的是,人的软件对硬件没什么要求,而电脑的软件则对硬件有不同的要求。如果不做特殊的工作,当今主流,甚至不入流的硬件,都可以满足一般软件的要求。晓伟的电脑购于四年前,在当时算是比较不错的配置,但是现在已经归到“不入流”行列中了,即便如此,平时的学习和娱乐项目,这个小本都能胜任。

曾经看到一个说法,说是,正常情况下,一台电脑在软件上的花费,应该占到总花费的50%。但是鉴于我国的特殊国情,这个比例可能要低得多,有时甚至为0。因为,正版除非可以免费下载,要不然永远也无法战胜盗版。不过,随着我国经济的发展,对于知识产权的保护力度会越来越大,我们终究有一天会结束“免费的午餐”。在本文里,晓伟给大家推荐一些软件,这些软件都是晓伟亲自使用过的,花费较少,也不含病毒,而且,可能比付费软件还好用哦@

Continue reading »

 

前面写过一篇《选择R编辑器的折腾过程》,如题目所述,主要讲述折腾过程,而没有写折腾结果,这篇文章补上。首先把我们将要实现的效果说明一下,语法高亮,代码自动缩进,自动补全,利用VIM和它的两个插件,可以在一个终端窗口内,实现VIM和R的交互,单行向R发送代码,VISUAL模式下,选中代码向R发送,这是我们最常用到的两个功能。

VIM就不作介绍了,网上的文章一大堆,自己google就行。准备工具:看本文题目,首先你得装个ubuntu吧,版本?最新的10.04就行。利用安装盘,或者硬盘安装(可参考怡轩的文章) ,或者使用VMWare虚拟机安装(这个东东可以从我国最大的盗版软件集散地上下载,全网资源结果中的700+评论的那个)。正常情况下ubuntu是应该自带VIM的,这里是VIM不是gVIM,前者只要你在终端里输入vim就可以打开,后者则要另外安装,并且在新的窗口中打开。推荐用终端下的vim,个人感觉配色更加舒服。VIM的两个插件,一个是vim-r-plugin2,在这里下载,一个是screen.vim,在这里下载。最后,主角登场,R,在新立得里安装就可以。

Continue reading »

 

大约在十多年前,那时候网络还没有现在这么普及,确切地说微软的office还没有一统江湖,很多人用的都是国产的金山WPS,DOS的系统。蓝色的界面,没有鼠标,这种场景如果现在出现在你的电脑屏幕上,估计很多人都会以为自己的系统已经崩溃了。当时所用的输入法,说实话我已经记不太清楚了,貌似是全拼,也似乎好像有智能ABC,当然还有经典的原版王码五笔86版,我的五笔学习就是从这版开始的。

那时候接触电脑的人,即便不会用五笔,也必然听说过这两句口诀“王旁青头戋五一,土士二干十寸雨”,这就是五笔字型字根大法的前两句(还好不是“武林称雄,挥刀自宫”)。世上有很多事情,在达到融会贯通的境界前,必然要经历一个死记硬背的过程,五笔也不例外,事实上,即便是像我现在已经全面改用五笔五年了,也并不是所有的汉字都会用五笔打的。

Continue reading »

 

2009年是自己比较失意的一年,算是在人生之路上摔了个大跤,还好小筋的身子骨比较硬朗,今年又爬起来了。记得《奋斗》书后有几段话,其中一段是米同志她爸说的,“有的时候人会摔一跤,趁这个机会应该回头看一看,看看自己曾经走过的路,用不着匆匆忙忙往前走。”跑题结束,下面切入正文。

R是统计专业居家旅行,生活学习必备语言,至少我这么认为的,嘿嘿。R的编辑器有很多,哦,这里要说明一下,我这里的编辑器,也包括很多的GUI,相关的可以参考 R GUI Project。

Continue reading »

© 2010 王晓伟的博客 All Rights Reserved Suffusion theme by Sayontan Sinha