2016-02-09 15 views
8

Ich installierte jupyter mit conda install jupyter und bin ein Notebook mit dem r kernal von conda create -n my-r-env -c r r-essentialsVerwenden von ipython magics in R jupyter Notebook?

installiert läuft ich ein Notebook leite und wollen ein Bash-Befehl von einem Shell auszuführen.

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

Zum Vergleich: in einem Notebook mit einem Python-Kernel:

!echo "hi" 
hi 

Gibt es eine Möglichkeit R Notebooks einzurichten hinsichtlich die gleiche Funktionalität wie die ipython Notebook haben Befehle bash (und vielleicht andere magics)?

+1

Es sieht aus wie es nicht möglich ist: https://github.com/IRkernel/IRkernel/issues/244 – elsherbini

Antwort

6

Für nur Bash-Befehle ist es möglich, Systembefehle zum Funktionieren zu bringen. Zum Beispiel in der IRkernel:

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

Ausgang:

'hi' 

Oder die ersten 5 Zeilen einer Datei zu sehen:

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

Als IPython magics im IPython Kernel zur Verfügung stehen (aber nicht im IRkernel), ich habe eine schnelle Überprüfung durchgeführt, ob es möglich ist, mit den Bibliotheken rPython und PythonInR darauf zuzugreifen. Allerdings ist das Problem, dass get_ipython() nicht sichtbar für den Python-Code ist, so dass keiner der bearbeiteten folgenden:

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')") 
Verwandte Themen