R大改版发布4.0.0,导入字符串将不再默认转换成类别变量

资料科学热门语言R推出了最新版本4.0.0,除了修复不少bug之外,还有许多重大更改,因此新发布的版本号也就跟着大跃进,其中甚至有可能影响R运算结果的变动,因此开发者在执行以先前版本R撰写的脚本,需要先经过验证,而且所使用的组件,也需要为R 4.0.0重新安装。

R 4.0.0中最重要的更新,便是导入的字符串资料,不再被默认转换成类别变量(Factor),过去stringsAsFactors的选项默认为True,因此导入的字符串资料都会被转换成Factor对象,但是在最新的版本中,stringsAsFactors的默认改为FALSE。

对于先前的R用户来说,stringsAsFactors默认为True,虽然让统计模型更简单,并且使用较少的内存,但是可能造成混淆,因为用户会以为是普通字符串。这个改动破坏了许多组件的兼容性,但目前大多数CRAN上的组件已经更新,另外,这同时也可能影响用户自己撰写的脚本,用户可以更改写法,或是在导入函数调用中,加入显式stringsAsFactors声明。

新版本R添加了用来指定原始字符字符串的新语法,用户现在可以使用类似于C++的表示法r”(…)”,在括号中填入任何字符串行,包括双引号、中括号和大括号等,这对于在写HTML程序代码、正规表达式,和其他包含引号和反斜线的字符串时特别有用。

R 4.0.0强化了参照计数系统,由于当用户删除R中的对象时,通常关联的内存会跟着发布给操作系统,在过去的R版本,当对任何内存区块具有两个以上的参照,则系统便会直接崩溃,而从R 4.0.0开始,所有的参照都有计数,R能够尽量收回内存,减少R的整体内存使用量。

这个改变不会影响开发者撰写程序代码的方式,但会使R的执行更为快速,特别是在内存有限的系统上。在性能改善上,还有网格图系统(Grid Graphics System)也重新翻新,ggplot2绘图渲染速度变得更快,Socket连接更快速,各式函数也多获加速。

于R 4.0.0中,处理矩阵和数组更加一致,虽然在概念上矩阵只是二维数组,但是过去版本的R,在部分情况下,处理矩阵和数组对象的方法并不一样,而在这个最新版本中,矩阵对象将继承数组类别,以消除不一致的情况。

目前R 4.0.0已经发布在cran.r-project.org上,而Windows、Mac和Linux的二进制文件,也都已经可以下载使用。