2016-02-09 11 views
8

zainstalowałem jupyter z conda install jupyter i używam notebooka z zainstalowanym z conda create -n my-r-env -c r r-essentialsUżywanie magii ipython w notebooku R jupyter?

używam notebooka i chcemy uruchomić polecenie bash od powłoki Kernal r.

!echo "hi" 
Error in parse(text = x, srcfile = src): <text>:1:7: unexpected string constant 
1: !echo "hi" 

Dla porównania, w notebooku z jądra Pythona:

!echo "hi" 
hi 

Czy istnieje sposób, aby skonfigurować notebooków R, aby mieć taką samą funkcjonalność jak notebook ipython w odniesieniu do atakujących polecenia (i może inne magie)?

+1

Wygląda na to, że nie jest możliwe: https://github.com/IRkernel/IRkernel/issues/244 – elsherbini

Odpowiedz

6

W przypadku zwykłych poleceń basha można uzyskać polecenia systemowe. Na przykład, w IRkernel:

system("echo 'hi'", intern=TRUE) 

wyjściowa:

'hi' 

Albo zobaczyć pierwsze 5 wierszy pliku:

system("head -5 data/train.csv", intern=TRUE) 

Jak magii ipython są dostępne w jądrze ipython (ale nie w IRkernelu), szybko sprawdziłem, czy można uzyskać do nich dostęp przy użyciu bibliotek rPython i PythonInR. Jednak problemem jest to, że get_ipython() nie jest widoczna dla kodu Pythona, więc żaden z poniższych pracowali:

library("rPython") 
rPython::python.exec("from IPython import get_ipython; get_ipython().run_cell_magic('writefile', 'test.txt', 'This is a test')") 

library("PythonInR") 
PythonInR::pyExec("from IPython import get_ipython; get_ipython().run_cell_magic('head -5 data/test.csv')") 
Powiązane problemy