為什么 Mathematica 用戶會關心R?
從 Mathematica 鏈接到其他語言和工具的好處因情況而異。但不同尋常的是,在 Mathematica 9的新 RLink (https://www.wolfram.com/mathematica/new-in-9/built-in-integration-with-r/) 中,它的真正好處在于它與 R 社區的聯系。
當我們第一次為 C 添加 MathLink 庫時,在進行密集的數值計算方面有真正的好處(盡管多年來 Mathematica 的性能改進和編譯器的發展已經大大減少了這方面需要付出努力的機會)。創建 Excel Link 為 Mathematica 前端添加了一個替代接口的范例。
然而,有了 RLink,我現在可以通過他們創建的附加庫立即訪問 R 社區的工作,所有這些內容都可以立即用于 Mathematica環境,并通過R語言運行時進行解釋。
讓我們看一個簡單的例子。雖然 Mathematica 支持 FisherRatioTest,但它不知道確切的 Fisher 檢驗。(這是一個假設檢驗,其中的零假設是具有固定邊際的列聯表中的行和列是獨立的。)

好吧,現在有了。

找到合適的庫比給 Tank 打電話 (《黑客帝國》電影中的典故 https://www.youtube.com/watch?v=6AOpomu9V6Q) 更費事,我跳過了任何錯誤檢查。但唯一復雜的一點是從結果中提取 p值(“[[1,1,1]]”部分),因為RFunction返回一個包含額外元數據的RObject。當然,這里并不是我關心的。
我現在可以像使用任何內置函數一樣使用它。
我可以繪制它:

我可以操縱它:

我可以以類似的方式將它與其他語言的庫一起使用:

未來總是難以預測。當我(許多)年前開始在這里工作時,到 FORTRAN 的一般鏈接似乎是最重要的事情,但沒有人再問我這個問題—— C 和 Java 鏈接是最受歡迎的。某些特定庫(BLAS/LAPACK、GMP 等)的鏈接最終成為 Mathematica 中的核心基礎設施組件。
R 代碼不會處理符號參數或高精度數字,因此,為了穩健性,您需要比使用Mathematica代碼更仔細地進行類型檢查。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















