我有一個使用R編程語言的Jupyter Notebook
。我想在此R筆記本中撥打javascript functions
。我可以從R jupyter筆記本中調用自定義JavaScript
我知道有一種方法可以做到這一點,因爲有可以與R調用基於JavaScript庫,但我找不到包裝的JavaScript函數的任何實例,因此它可以通過R.
使用即使將javascript分配給R variable
然後調用該R變量也會有所幫助。
我有一個使用R編程語言的Jupyter Notebook
。我想在此R筆記本中撥打javascript functions
。我可以從R jupyter筆記本中調用自定義JavaScript
我知道有一種方法可以做到這一點,因爲有可以與R調用基於JavaScript庫,但我找不到包裝的JavaScript函數的任何實例,因此它可以通過R.
使用即使將javascript分配給R variable
然後調用該R變量也會有所幫助。
js::js_eval()
可以評估的JavaScript內R.字符串從?js::js_eval
:
# Stateless evaluation js_eval("(function() {return 'foo'})()")
對於更復雜的JavaScript操作,檢查出V8
,它可以讓你保持一個JavaScript實例多行。從?V8::v8
:
# Create a new context ctx <- v8(); # Evaluate some code ctx$eval("var foo = 123") ctx$eval("var bar = 456") ctx$eval("foo+bar")
它最終會得到超越小竅門什麼真正令人沮喪,但它確實工作。如果你聰明,你可能會編寫整個腳本,但我不確定這是否值得,除非有絕對只能在JavaScript中完成的事情。快樂黑客!
我只是想萬一有人加入這個答案很感興趣,使用javascript/HTML中Jupyter R.下面是一個非常簡單的例子:
test="<input type=\"file\" id=\"myFile\"/>"
as.factor(test)
的as.factor()刪除引號,但你基本上可以將javascript/html分配給一個r變量並調用該變量。例如:
test="<input type=\"file\" id=\"myFile\"/>"
test
所以我找到了另一種通過使用HTML功能來做到這一點的方法。這裏是一個示例,通過單擊文本將顯示和隱藏單元格中的代碼。
from IPython.core.display import HTML
HTML("""
<style>
// add your CSS styling here
</style>
<script>
var code_show=true; //true -> hide code at first
function code_toggle() {
$('div.prompt').hide(); // always hide prompt
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$(document).ready(code_toggle);
</script>
<a href="javascript:code_toggle()"
style="text-decoration:none; background-color: none;color:black;">
<h1 align="center">Example</h1>
</a>
""")
感謝您的幫助! – CodeGuyRoss
如果您嘗試這樣做,並且無法使js_eval正常工作,那麼以下方法適用於我:終端 sudo gem install libv8 -v'3.16.14.3' - --with-system-v8 brew tap homebrew/versions 釀造安裝v8-315 在R, install.packages( 「V8」 ) install_github(」 jeroenooms/JS」) 的JavaScript將現在的工作。 js :: js_eval(「(function(){return'foo'})()」) – CodeGuyRoss