R和S之间有什么区别?
答案 0 :(得分:25)
R FAQ在回答这个问题方面做得不错:
我们可以将S视为具有三种当前实现或“引擎”的语言,即“旧S引擎”(S版本3; S-Plus 3.x和4.x),“新S引擎”(S鉴于这种理解,要求“R和S之间的差异”实际上相当于要求S语言的R实现的细节,即差异在R和S引擎之间。
[...]
答案 1 :(得分:9)
如果您正在谈论使用命令提示符或脚本工作,最大的区别将是程序包支持。最根本的区别是下划线赋值运算符。在S y_2
中与y=2
相同。在R y_2
中只是一个字符串/对象。几年前当我从S转到R(当时是S 5.x)时,我发现我的大多数函数和脚本只需用<-
替换下划线就可以了。我的一个例子是空间统计实现。当时S空间统计包大约有8年没有更新。 R有几个可用的软件包,大多数新的研究似乎都是为R实现的(学术界可以免费使用)。
S-Plus拥有庞大的GUI前端,表面上看起来就是几个宏大的价格标签。然而,我的S经验现在有几个版本了。
答案 2 :(得分:5)
如果您阅读了第一篇关于答案的常见问题解答,R FAQ会详细了解S实施的具体细节。
答案 3 :(得分:2)
如果我在版本8中没有弄错,SPLUS现在与R兼容,以便R库可以在SPLUS中使用。
另一个区别是范围规则--R使用词法范围而S由SPLUS实现,使用动态范围。这使R更像是一种函数式语言,但所有对象都驻留在内存中。在SPLUS中,如果我没记错,工作区中的对象与硬盘上的对象之间存在1:1的对应关系 - 这会使SPLUS更慢,但更适合处理更大的数据集。