2016-02-09 15 views
8

Ho installato jupyter con conda install jupyter e sto facendo funzionare un notebook con la r kernal installato da conda create -n my-r-env -c r r-essentialsUtilizzo di ipython magics in R jupyter notebook?

Sto facendo funzionare un quaderno e voglio eseguire un comando bash da una shell.

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

Per confronto, in un notebook con un kernel pitone:

!echo "hi" 
hi 

Esiste un modo per impostare i notebook R ad avere la stessa funzionalità del notebook ipython per quanto riguarda Bash comandi (e forse altre magie)?

+1

Sembra che non è possibile: https://github.com/IRkernel/IRkernel/issues/244 – elsherbini

risposta

6

Per soli comandi bash, è possibile far funzionare i comandi di sistema. Ad esempio, nel IRkernel:

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

uscita:

'hi' 

o per vedere i primi 5 righe di un file:

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

Come magie ipython sono disponibili nel kernel IPython (ma non in IRkernel), ho fatto un rapido controllo se fosse possibile accedervi usando le librerie rPython e PythonInR. Tuttavia, il problema è che get_ipython() non è visibile al codice Python, così nessuno dei seguenti ha lavorato:

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')") 
Problemi correlati