如果今天从头开始对 R 进行重新编程,哪些变化对统计界最有用?

机器算法验证 r 计算统计
2022-02-03 23:43:21

统计学界和其他学术领域的许多人都将R其用作数据分析和统计计算的主要语言。它是一种美妙而通用的语言,在学术界和工业界都非常流行。该语言有一段有趣的历史,它是对S贝尔实验室生产的语言的改进(参见例如,Chambers 2020)。虽然它是一种通用语言,但它的基本版本R有一些众所周知的缺点,例如难以处理“大数据”、缺少变量标签等。这种基础功能通常由流行的软件包补充,但新用户可能难以学习所需的方法。

由于R本质上是作为对先前语言的更新重新编程而开发的,因此很自然地想知道是否可能会努力创建一种新的语言来寻求在R. 如果发生这样的项目,什么样的变化对统计界最有用

4个回答

参数名称更加一致。例如:

  • matrix()有一个参数dimnames
  • write.table()有参数row.namescol.names(有点,没有dimnames参数)。
  • 有函数rownames()colnames(),没有点。

是的,这是一个小细节。但是我已经每天使用 R 近 20 年了,而且我仍然必须?matrix 每次都查看,因为我尝试设置row.names并且很惊讶为什么这不起作用。

有用的错误信息

与其他语言(例如 Python)相比,很难根据错误消息跟踪错误。错误消息通常甚至不能提供有关代码的哪一部分导致错误的信息。

可选的静态类型

确保 i 是数字(应该是数字)而不是数据框的简单方法。

一些(可能是可选的)方法来消除由范围问题引起的错误

例如,我希望能够告诉一个函数它应该只使用它的参数,并且在任何情况下都不要尝试在其他环境中查找变量(我正在查看你的全局环境)。

对 C++ 扩展的本机支持

Rcpp 是扩展 R 以获得性能提升的绝妙方法,但存在 R 原生仅支持 C(而不是 C++)的问题。这严重限制了您可以使用 Rcpp 执行的操作,并使通过新包扩展 R 变得比必须的更加困难。

当然,解决这些问题中的任何一个都需要对语言进行彻底的重新设计,这样 R 就不再是真正的 R 了。

独立可执行文件

要执行代码,您需要安装 R。这类似于 Python,但它确实有一些程序可以将 Python 转换为可执行文件。

这使得与未安装 R 的用户共享程序变得更加困难。

内置可重现环境

如果 R 是从头开始设计的,那么最好有一种内置的方式来可重复地使用包并安装同一包的多个版本,并将有关代码运行的包的信息捆绑在一个文件中用于使用相同的包重新运行此代码。理想情况下,不需要您多次安装同一个包。

有很多包可以创建可重现的 R 环境,这会导致碎片化,用户必须使用一个包才能正确重现他们的代码。