Importare funzioni da Python e R

Julia intermedio

Anthony Markham

Quantitative Developer

Panoramica pacchetti

  • Potremmo voler usare pacchetti Python o R nei programmi Julia.
  • Perché farlo:

    • familiarità con un pacchetto
    • pacchetto di nicchia solo per Python o R
    • coerenza con altro codice
  • Due pacchetti Julia lo permettono: PythonCall e RCall.

using Pkg
Pkg.add("PythonCall")
Pkg.add("RCall")
  • Vale anche il contrario: si può usare Julia in Python e R.
Julia intermedio

Importare pacchetti Python

  • Usa PythonCall per integrare funzioni Python nel codice Julia.
  • Qualsiasi pacchetto Python può essere usato, se installato anche in Python.
using PythonCall
  • Per caricare un pacchetto Python, usa pyimport.
pytime = pyimport("time")
  • PythonCall ha molte funzioni avanzate non trattate qui.
Julia intermedio

Chiamare funzioni Python

  • Possiamo chiamare qualsiasi funzione del pacchetto base time.
using PythonCall
pytime = pyimport("time")
println(pytime.ctime())
Sun Jan 22 12:16:28 2023
  • Possiamo combinare più funzioni, inclusa la formattazione Python.
println(pytime.strftime("%m-%Y", pytime.localtime()))
01-2023
Julia intermedio

Importare librerie R

  • Usa RCall per integrare funzioni R nel codice Julia.
  • Serve un'installazione di R prima di installare RCall.
  • Qualsiasi pacchetto R può essere usato, se installato anche in R.
using RCall
  • Per caricare un pacchetto in R, usa @rimport.
@rimport base
@rimport ggplot2
  • RCall ha molte funzioni avanzate non trattate qui.
Julia intermedio

Chiamare funzioni R

  • In questo esempio useremo funzioni dell'ambiente base di R.
  • Possiamo dare un alias quando importiamo un pacchetto.
using RCall
@rimport base as r_base
r_base.sum([1, 2, 3, 4, 5])
RObject{IntSxp}
[1] 15
Julia intermedio

Output di sum in R

  • Possiamo confrontare rapidamente l'output di Julia con quello di R.
RObject{IntSxp}
[1] 15

Output console R

Julia intermedio

Altre funzioni R

  • Ora proviamo la funzione abbreviate, sempre del pacchetto base.
r_base.abbreviate(["Anthony", "Rachel", "Steve", "Julia"], 3)
RObject{StrSxp}
Anthony  Rachel   Steve   Julia
  "Ant"   "Rch"   "Stv"   "Jul"

Julia intermedio

Esercitiamoci!

Julia intermedio

Preparing Video For Download...