Functies importeren uit Python en R

Julia voor gevorderden

Anthony Markham

Quantitative Developer

Pakketoverzicht

  • Je kunt pakketten uit Python of R gebruiken in je Julia-programma's.
  • Redenen om dit te doen:

    • vertrouwd met een bepaald pakket
    • nichepakket alleen beschikbaar voor Python of R
    • consistentie met andere code
  • Twee Julia-pakketten bieden dit: PythonCall en RCall.

using Pkg
Pkg.add("PythonCall")
Pkg.add("RCall")
  • Andersom kan ook: Julia-code gebruiken in Python en R.
Julia voor gevorderden

Python-pakketten importeren

  • Gebruik PythonCall om Python-functies in Julia te gebruiken.
  • Elk Python-pakket kan, zolang het ook in Python is geïnstalleerd.
using PythonCall
  • Gebruik pyimport om een Python-pakket te laden.
pytime = pyimport("time")
  • PythonCall heeft veel geavanceerde functies die we hier niet behandelen.
Julia voor gevorderden

Python-functies aanroepen

  • We kunnen elke functie uit het basispakket time aanroepen.
using PythonCall
pytime = pyimport("time")
println(pytime.ctime())
Sun Jan 22 12:16:28 2023
  • We kunnen functies combineren, incl. Python-formattering.
println(pytime.strftime("%m-%Y", pytime.localtime()))
01-2023
Julia voor gevorderden

R-bibliotheken importeren

  • Gebruik RCall om R-functies in Julia te gebruiken.
  • Installeer eerst R voordat je RCall installeert.
  • Elk R-pakket kan, zolang het ook in R is geïnstalleerd.
using RCall
  • Gebruik @rimport om een R-pakket te laden.
@rimport base
@rimport ggplot2
  • RCall heeft veel geavanceerde functies die we hier niet behandelen.
Julia voor gevorderden

R-functies aanroepen

  • In dit voorbeeld roepen we functies uit de R-baseomgeving aan.
  • Je kunt een alias meegeven bij het importeren.
using RCall
@rimport base as r_base
r_base.sum([1, 2, 3, 4, 5])
RObject{IntSxp}
[1] 15
Julia voor gevorderden

R-som output

  • We kunnen de output van Julia snel vergelijken met die van R.
RObject{IntSxp}
[1] 15

R-console-output

Julia voor gevorderden

Meer R-functies aanroepen

  • We proberen nu de functie abbreviate, ook in het base-pakket.
r_base.abbreviate(["Anthony", "Rachel", "Steve", "Julia"], 3)
RObject{StrSxp}
Anthony  Rachel   Steve   Julia
  "Ant"   "Rch"   "Stv"   "Jul"

Julia voor gevorderden

Laten we oefenen!

Julia voor gevorderden

Preparing Video For Download...