矩阵包的研究 - 页 3

 
Alexey Volchanskiy:

很好,这是我第一天学习R,请回答我的问题,我想比较R和Matlab的可能性。但不要有敌意,要理智和冷静 :)。

  1. R是一种具有OOP功能的语言吗?
  2. 我能否在R中创建一个32位和64位的dll,以便从MQL4/5中直接使用?如果是这样,我必须安装多大的包才能在用户的电脑上使用这样的dll?
  3. 我可以连接普通的dlls,以便从R中直接访问吗?
  4. R语言中是否有Simulink的类似物?
  5. 为什么所有的评论都强调R是一个统计程序?我对DSP感兴趣,R有数字信号处理的包吗?
  6. R是否有一个内置的紧凑格式来存储数据,类似于Matlab中的.mat文件?

1.是的,比较不同的编程语言不是一件容易的事,因为使用一些工具和不使用其他工具往往是程序员的品味问题。

我不是R的专家,但我要提到这一点。

R没有 "标量 "的概念。它是一个长度为1的向量。也就是说,算术是基于矩阵运算的。一行代码C= A+B可以调用一个矩阵运算

在R中,"对象 "的概念被带到了它的逻辑结论:它可以是一个向量,一个矩阵,一个程序矩阵,以及一般来说,用户程序执行的环境。

在R中,编写程序是非常容易的,它不仅可以加载执行计算机的处理器和内核,还可以加载本地网络中的邻近计算机

...

2.我的知识不足以回答这个问题。显然,你不能。这源于R本身结构的特殊性,它在第一次遇到时是一个解释器。但这是一种肤浅的看法。事实上,R是一个与C语言有很好接口的共生体。R的主要力量是包(超过7000个,包含约12万个函数),而这些包通常是对C语言或Fortran语言程序的引用。重点是,R使用C和Fortran库进行所有计算密集型操作。

对R的很多关注都在API上,但超出了我的资格范围

3.是

4.我不这么认为。有一些工具可以用来构建GUI(除了现成的),尽管这不是全部。在这一段中,我想提到在R中广泛开发的工具,这些工具在通常的编程语言中是没有的:这些是统计模型测试的方法。处理统计测试结果的工具是非常发达和先进的。在R中,你可以很容易地回答这个问题:"对于100个观察样本,平均数与数学期望值相差多少?"

5.广义的统计学,是R的一个特点。不要忘记绘图工具,这是处理统计工作时的基本工具。为了了解R工具的概况,打开网站,有专题的软件包汇编。

6.无法比较。但有 "字节码"。但问题是不同的。一个包含几千行代码的R程序是很奇特的。一个普通的R程序就是一个包函数调用。

 
Alexey Volchanskiy:
我必须尝试把我在Matlab中的一些程序翻译成R,以比较速度。如果我周末有时间搞清楚,我会做的,并向大家报告。Matlab是相当慢的,我用C#或C++做了很多东西,并将其作为DLL插入以获得速度。

R本身是三倍的弱智。它是一个解释器。调试完全没有问题,起初我开始使用调试器,后来我发现没有用。

说到R速度,这里有几个考虑因素。

1.你可以把它翻译成字节码,但它是一种膏药

2.我们不要忘记,用于计算密集型操作的软件包使用的是库,这些库的选择是考虑到速度的。

3.一个用于矩阵运算的库

4.矩阵操作不需要循环操作符

5.加载所有的核心。在算法允许的情况下,标准且非常简单。

一般来说,如果你对两种语言的知识是相同的,仅仅通过从语言到语言的重写来比较程序是可行的。

 
Alexey Volchanskiy:
我必须尝试在Matlab中把我的一些程序翻译成R,以比较速度。如果我想办法在周末前解决这个问题,我就会去做,并让你知道发生了什么。Matlab的速度相当慢,我用C#或C++做了很多事情,并将其作为DLL插入以获得速度。

你看,如果你要计算一些非微不足道的东西,那就要使用一个包。如果包装是用 "加号 "写的,它就会飞起来。如果没有,它可能会爬行。

从我自己的经验测试:如果你试图循环浏览data.fram的元素(这是一个数组,可以包含混合的数据类型),并对它们进行计数,可能会非常长。除非使用特殊的软件包,否则R在对大数组进行计算时非常慢。

但总有一些库,我需要的计算已经实现了,我可以调用,例如,rollapply(x$V1, mean)并计算所有元素的移动平均数,而不是令人厌烦的长数组元素 的转换。

 
СанСаныч Фоменко:


5.加载所有内核。在算法允许的情况下,标准且非常简单。


SanSanych,你能澄清一下吗?我们在探测R的并行性时,得出了一个明确的结论,即它会加载一个核心(看起来在所有4个核心上加载25%),除非特殊包中另有规定。
 
СанСаныч Фоменко:

R自己是三度弱智......


那么这个软件的范围是什么呢?为一家销售中国消费品的精品店分析一个有效的品种?
 
СанСаныч Фоменко:

...R的主要力量是包(超过7000个,包含约12万个函数)。

还有,有多少包和功能是必要的,并且足以获得稳定的利润?

如果R不能处理,我们下一步将掌握什么软件?

 
Alexey Burnakov:
SanSanych,你能澄清一下吗?我们在感受R的并行性,并得出了一个明确的结论,即它会加载一个核心(看起来在所有4个核心上都有25%的负载),除非特殊包中另有规定。
并行计算 是一个非常先进的东西,有很多出版物,例如attac。
附加的文件:
parallel.zip  387 kb
 
Dmitry Fedoseev:

那么,这个软件的范围是什么?为一家销售中国消费品的专卖店分析一个有效的品种?

请完整地阅读我的帖子。

要补充的是。

当我在写R本身时,请不要忘记,真正的R代码只包括R文本本身的一小部分。

最简单的例子。

转发:A=B。

如果A和B是标量,那么MKL的代码可能会更快。

但R中没有标量:A和B至少是向量。在MCL中是有周期的,在R中是没有任何周期的写法,并作为一个包的一部分实现,今天的矩阵计算,在效率上是一流的。而如果你在矩阵计算方面比较R和MCL,R从根本上说更有效率。

R的一般原则是,使用不是用R写的现成的高效代码块--如果没有现成的专门库,通常用C写。

一句话:通过使用内部子程序和并行计算,R在计算上是高效的。

 
Event:

那么,有多少包和功能是必要的、足够的,以获得稳定的利润?

如果R还不够,我们下一步将掌握什么软件?

对于个人交易者的需求,我们有冗余的软件。

今天,R是广义上的统计学领域的顶级软件。例如,传统上归属于人工智能的机器学习方法,在R中得到了广泛体现。

还有一个细微差别。

该领域的最新流行趋势是以R包的形式出现的。原因就在这里。现在,统计学领域的科学出版物,除了公式之外,通常包含R语言的代码,可以说是一个好的Mauvais ton的标志。而从文章中的R代码到R中的成熟包是一步到位的。

补充一点,任何与R有关的东西都是全世界范围内的聚会。把一个包放在R资料库中,会使R中的包的作者成为全世界的名人。R是一个免费的、开放源码的系统,在使用上没有限制。恰恰是R的这一特性使得R能够从以前的付费领导者--SAS、SPSS,以及Python这一混乱的语言中抢占世界领先地位。

大约一年前,微软通过收购R的一个付费变体--革命分析--入主R,并且现在正在积极推广它,这不是没有原因的。

 
СанСаныч Фоменко:
并行计算 是一个非常先进的东西,有很多出版物,例如attac。
非常感谢。