Import funkcí z Pythonu a R

Intermediate Julia

Anthony Markham

Quantitative Developer

Přehled balíčků

  • V programech v Julii můžeme využívat balíčky z Pythonu nebo R.
  • Důvodů může být několik:

    • znalost určitého balíčku
    • specializovaný balíček dostupný jen pro Python nebo R
    • konzistence s ostatním kódem
  • Tuto funkci poskytují dva balíčky Julie – PythonCall a RCall.

using Pkg
Pkg.add("PythonCall")
Pkg.add("RCall")
  • Je možné i opačné řešení – kód Julie lze použít v Pythonu a R.
Intermediate Julia

Import pythonových balíčků

  • Pomocí PythonCall integrujeme funkce Pythonu do kódu Julia.
  • Lze použít libovolný balíček Pythonu, pokud je nainstalován v Pythonu.
using PythonCall
  • Pro načtení balíčku z Pythonu použijeme pyimport.
pytime = pyimport("time")
  • PythonCall nabízí mnoho pokročilých funkcí, které v tomto kurzu nepokryjeme.
Intermediate Julia

Volání pythonových funkcí

  • Můžeme volat libovolnou funkci ze základního balíčku time.
using PythonCall
pytime = pyimport("time")
println(pytime.ctime())
Sun Jan 22 12:16:28 2023
  • Lze kombinovat více funkcí včetně formátování z Pythonu.
println(pytime.strftime("%m-%Y", pytime.localtime()))
01-2023
Intermediate Julia

Import R knihoven

  • Pomocí RCall integrujeme funkce R do kódu Julia.
  • Před instalací balíčku RCall je nutná instalace R.
  • Lze použít libovolný balíček R, pokud je nainstalován v R.
using RCall
  • Pro načtení balíčku v R použijeme @rimport.
@rimport base
@rimport ggplot2
  • RCall nabízí mnoho pokročilých funkcí, které v tomto kurzu nepokryjeme.
Intermediate Julia

Volání R funkcí

  • V tomto příkladu budeme volat funkce ze základního prostředí R.
  • Při importu balíčku můžeme zadat alias.
using RCall
@rimport base as r_base
r_base.sum([1, 2, 3, 4, 5])
RObject{IntSxp}
[1] 15
Intermediate Julia

Výstup R funkce sum

  • Můžeme rychle porovnat výstup z Julie s výstupem R.
RObject{IntSxp}
[1] 15

Výstup R konzole

Intermediate Julia

Volání dalších R funkcí

  • Nyní vyzkoušíme funkci abbreviate, také ze základního balíčku.
r_base.abbreviate(["Anthony", "Rachel", "Steve", "Julia"], 3)
RObject{StrSxp}
Anthony  Rachel   Steve   Julia
  "Ant"   "Rch"   "Stv"   "Jul"

Intermediate Julia

Pojďme si procvičit!

Intermediate Julia

Preparing Video For Download...