4

我正在爲我的R腳本編寫一個UI,該腳本會使用JavaScript/html(本地不託管)詢問用戶生物體的某些名稱和文件夾的位置。R&Javascript回調

目前,我只是:幾個文本框,需要輸入並傳遞可執行的R腳本。最初這個UI被編寫爲非常用戶友好的選項,但是我慢慢意識到可以添加一些漂亮的技巧,例如爲用戶完成單詞的文本框(因此,如果用戶拼錯了生物體的名稱, UI將根據上傳的文件更正輸入,並且這將來自生物體文本文件列表,R將在文件添加後立即生成)。

有沒有辦法讓這個更高效?例如,從R(如.pngs)檢索圖並更新本地網頁,並能夠在R和UI之間共享日誌文件(請注意,我知道潛在的File I/O錯誤)..但對於頭腦風暴的緣故。我知道Shiny,但我想要的是一個簡單的本地用戶界面,因爲我將處理大數據(我的腳本將處理的平均值爲1GB的文件)。

另一種方式來問我的問題,這是更重要的一點:

這裏的集成PHP和R的例子:http://www.r-bloggers.com/integrating-php-and-r/ 我期待用JavaScript創建類似的東西/ CSS/HTML/jQuery的等

謝謝

回答

1

爲什麼你不能在本地使用Shiny?您可以在計算機上設計您的應用程序,並使用R提示符中的runApp('myapp')在本地運行它。除非你對javascript有經驗,否則我會給予閃亮的另一個外觀:http://www.rstudio.com/shiny/

您鏈接到的示例可以很容易地使用Shiny實現。見下面的鏈接瞭解如何編寫應用程序的教程:

http://rstudio.github.com/shiny/tutorial/#hello-shiny

要在本地運行例如:

install.packages( '閃亮')

閃亮:: runExample(」 01_hello')

1

你完全可以使用nodejs(nodejs.org)。看看https://github.com/elijah/r-noder-node。令人困惑的是,這是兩個同名的項目。關於後者的更多信息,請訪問:squirelove.net/r-node/doku.php

近年來,JavaScript已經成爲最快的編程語言之一。在我知道的一種情況下,JavaScript比C++更快。請參閱:benchmarksgame.alioth.debian.org/u32/performance.php?test=regexdna

請記住,雖然內存在JavaScript中很難管理,所以您應該運行某種內存泄漏檢測程序在你的代碼上,如果你打算創建長時間運行的進程。 E.I:memwatch(npmjs.org/package/memwatch)或nodeheap(npmjs.org/package/memwatch)

祝你好運!

PS。對於缺乏真正的聯繫感到抱歉。我顯然不允許發佈超過2個鏈接。

1

我有一個類似的情況,閃亮看起來像一個好主意給我。但是,在我做了幾個第一步之後,我不再確定這一點。請注意,大多數示例使用閃亮的顯示結果。當你編輯一些字段並使用數據庫時,事情可能變得混亂;一旦字段可以被程序和用戶改變,反應性就會阻礙。

舉例來看https://gist.github.com/dmenne/4721235/edit。目前閃亮的狀態的主要問題是,你必須使用動態用戶界面來處理這種類型的工作,因爲你必須在服務器中創建UI元素,所以這會破壞用戶界面和服務器的任何分離。

閃亮是一個好主意,但對於任何大的互動現在爲時尚早。知道了令人驚歎的RStudio團隊的支持,我確信現在的壓力應該是

還有什麼可以讓R的用戶界面? TclTk讓我不寒而慄。我在C#工作了很多,幾年前我一直在使用R(D)COM進行接口連接,但在安裝和授權問題後放棄了。現在有更好的R.DOTNet;它是最容易安裝的安裝方式,但它不是一個非常活躍的項目,並且容易崩潰。通過RServe/RServeCLI進行接口是穩定的,但在Windows上安裝太困難,例如在具有嚴格安全問題的醫院計算機上。

還有Qt。有了積極的RInside社區,這將是一個不錯的選擇,界面非常好。但是,我希望我的編程技能處於RStudio-guys的水平。事實上,即使是德克也是一個概念驗證水平(using rinside with qt in windows)並不令人鼓舞。