Home Comments Thread
New Thread

4 Comments

giscus-bot giscus-bot 2022-12-16 19:31:20
访客 *fan* @ 2010-09-14 08:45:33 写道:

“短时间内肯定还死不了(我是说十年二十年)……”,这句话安抚了我一下。最近貌似有人说,R是一个brilliant library,但不是一个brilliant language。

@thinkfan

yihui yihui 2022-12-16 19:31:24

关于计算机技术的争论,如果去掉用户习惯的因素,剩下的有意义的证据就没多少了。我猜那个人可能是从计算机编程的角度来评论的,确实,R宽松的语法对于那些受过严格训练的程序员来说简直不能容忍:变量作用域一团糟、数组下标从1开始、运算中的“自动”功能太多……这么看它确实不是个聪明的计算机语言,但那又如何呢,搞统计的人若都要遵守那么多规则,那不知要增加多少工作量,写个1+1都要想1是整数还是浮点数,算x+1要定义数组加循环。有舍有得。每一种程序语言都有其优势劣势,开发者们并不傻,他们也面临着很多选择和权衡。

——原帖发布于 2010-09-14 09:03:38

giscus-bot giscus-bot 2022-12-16 19:31:28
访客 *月珥* @ 2011-03-12 16:56:29 写道:

一部分确实是这样的。也许对于一个严格意义上的程序员来说,代码的效率自然是非常重要的。但是R的使用者往往首先是“做统计的”(当然也有统计之外的用户,然而毕竟R依然还是主要被用来“做统计”),而不是一个纯粹的程序员。对于这样的用户来说,数组下标从1开始自然才是最合理的,因为所有课本上的矩阵,都是从第1行第1列开始,而没有从第0行第0列开始的。这一点对一个以统计分析见长的语言来说,其实是至关重要的。

但有些问题跟这个并没有关系。譬如变量作用域的问题,我实在是觉得糟糕透了,这跟我用R来做什么无关。

giscus-bot giscus-bot 2022-12-16 19:31:21
访客 *zhang7* @ 2010-09-14 09:37:53 写道:

“这世上大多数人仍然处理小数据” 赞同,期待在小数据里看到大内幕。

giscus-bot giscus-bot 2022-12-16 19:31:22
访客 *皮皮米菲兔* @ 2010-09-16 11:33:53 写道:

唉唉,那处理大数据的怎么办啊。。。

yihui yihui 2022-12-16 19:31:25

大数据有大数据的办法,我上面说的只是base R,即:R的基础设计只能利用内存,但它是可以扩展的。这问题首先取决于你的数据有多“大”,不同的人对“大”的概念感受可能不一样;然后取决于你的内存有多大(如果你不用任何附加包的话);还依赖于你究竟需要这大数据里面的多大部分。总之,这问题不是不可以解决,只是它没有在根基上做好大数据的准备。

——原帖发布于 2010-09-16 19:18:48

giscus-bot giscus-bot 2022-12-16 19:31:23
访客 *李青龙* @ 2010-09-16 16:09:30 写道:

R 就不能有个升级功能吗 从2.11升级到2.12是不是还要把2.11卸载啊

yihui yihui 2022-12-16 19:31:26

很多软件的升级都是卸载再安装啊,我一直也希望R有自动升级的功能,但很多时候用户的考虑是不严谨的,开发者的决策要严谨得多,甚至可以说是保守。比如说这里的升级:从用户角度来说,“升级”听起来是件好事,似乎意味着新功能、更强大,等等,但开发者(尤其是开源软件的开发者)都会认真考虑每个版本的发布,功能可能会有所调整,这些东西用户往往不关心(试问有多少人在每次R发布新版本的时候会看完NEWS文件?),然而这些更新对于某些用户(即使很少)来说,可能是灾难,老的代码可能不能运行。也许开发者的态度过于保守。在用户看来合理得要命的事情,可能不一定完全合理。

你说的升级功能在Ubuntu下很简单,因为所有Linux程序包只要在库中有更新,系统就会定期通知你,更新只是点按钮的事情;在万能的Windows下,软件各自为政,不像Linux通常都用统一的源去管理软件包,所以升级就变成了各个软件自己的事情。

升级软件一般来说都是需要卸载旧版软件的,问题只是升级过程是否让你看见。

说了半天废话,再说点有用的:我建议在Windows的R GUI中加入一个菜单Check for updates,背后的程序(可以用R写)去CRAN上检查一下R是否有更新,有的话就提醒一下。这样的话,你的抱怨就能转化为R的改进了。以下有一段不成熟的检查新版本的代码:

x = readLines("http://cran.r-project.org/sources.html")
# the version number is in the next line of 'The latest release'
rls = x[grep("latest release", x) + 1L]
newver = gsub("(.*R-|.tar.gz.*)", "", rls)
oldver = paste(getRversion(), collapse = ".")
# new version available?
compareVersion(newver, oldver) == 1L

Windows地下的R GUI有新增菜单的功能,我现在不在Win底下,忘记函数名字是什么了,从menu的帮助的See Also部分也许能找到,或者help.search('menu')。上面的代码可以绑定在菜单背后,这样用户点一下就知道是否需要更新R了。至于更新的过程,我对Windows不了解,不知道如何能让程序自己卸载自己还能安装新程序,你要是能把这一点搞清楚,那就万事大吉了。

——原帖发布于 2010-09-16 19:37:33

giscus-bot giscus-bot 2022-12-16 19:31:27
访客 *Feng* @ 2010-09-18 01:34:47 写道:

重启哥,我建议你在linux下装个虚拟机吧,VirtualBox 就挺好的。

yihui yihui 2022-12-16 19:31:27

我这学期刚买了新笔记本,那阵子不断重启就是在折腾Windows,装完软件必须重启,木有办法。后来还遇到若干次死机,终于把硬盘活生生折腾坏了,好在Lenovo客服还可以,打了个电话,过了几天新硬盘就寄来了。不过Win7真的是个垃圾系统,唉。

——原帖发布于 2010-09-18 09:03:49

Sign in to join the discussion

Sign in with GitHub