J编程语言与R编程语言对比Incanter

时间:2009-09-15 13:46:20

标签: clojure statistics programming-languages

有没有人尝试使用jsoftware和J语言编写的R编程语言。经过一番搜索,我遇到了基于clojure的incanter。我想学习数据分析的统计语言。你更倾向哪个?为什么?

请考虑以下条件,谢谢。

  • 生产率
  • 性能
  • 社区
  • 文库
  • 语法

3 个答案:

答案 0 :(得分:11)

最近在J论坛上提出了与此类似的问题。这是我的回答:

我不知道R在哪里,我知道J,但鉴于此处的免责声明是我的印象:

Ĵ

  • 强烈的数学焦点
  • 使用数组数据的概念框架非常通用,一致且经过深思熟虑。
  • 代码简洁/简洁
  • 面向对象的范例可用但可选

- [R

  • 强烈的统计重点
  • 面向对象的范式是普遍存在的
  • 成熟/强大的绘图和图形
  • 更大的用户群
  • 许多用户提供的软件包
  • 输入/操作数组的语法似乎很笨拙
  • 代码相对冗长
  • 更易于访问和广泛的文档

如果我的主要关注点是统计数据,那么我认为R将是明显的选择。 但是我发现J的数据处理功能既简单又强大。 因此,我目前使用J来创建和操作数据,然后使用其Rserve接口根据需要从R访问功能/包。然而到目前为止,我的R用法一直很“轻松”。

答案 1 :(得分:8)

生产率

文库

生产力与给定任务的可访问库密切相关。如果这都是关于统计计算的话,由于其种类繁多的图书馆,R有一个明显的胜利。但是,当你必须操作/混合数据时,J可以更容易处理,并且随着你在J编程方面的熟练程度变得更加容易。

但是,您可以在J。

中使用R interfaces这两个世界

性能

R因其糟糕的表现而臭名昭着。但是,您不应该在J或R中过度使用for循环。 J的表现不错。此外,J代码通常更简洁,因此更容易更改/重写/优化/提出新算法。我发现“想出一个新的算法”是一个巨大的胜利。

社区

与J相比,R的社区是巨大的。但是你有利有弊。想象一下生活在一个友好的小村庄和一个大城市的利弊。

语法

与R相比,J的语法令人惊讶地一致。一旦你学会了这些原则,可预测性就会非常高。

答案 2 :(得分:1)

上面没有提到的关于J的一些评论re:loops。

J的一个重点是定义一次性应用于整个数组的操作。这些操作通常比循环快得多,因为那时可以进行幕后优化。

虽然您可以在J中执行循环,但通常可以完全避免它们。因此,如果您可以改变解决问题的方法,通常可以更快。此转移可能需要几个月的时间。虽然这并不难实现。