Importowanie funkcji z Pythona i R

Julia średnio zaawansowana

Anthony Markham

Quantitative Developer

Przegląd pakietów

  • W programach Julia można korzystać z pakietów Pythona lub R.
  • Powody, dla których warto to robić:

    • znajomość danego pakietu
    • pakiet niszowy dostępny tylko w Pythonie lub R
    • spójność z pozostałym kodem
  • Dwa pakiety Julii udostępniają tę funkcjonalność – PythonCall i RCall.

using Pkg
Pkg.add("PythonCall")
Pkg.add("RCall")
  • Możliwe jest też odwrotne podejście – kod Julii można używać w Pythonie i R.
Julia średnio zaawansowana

Importowanie pakietów Pythona

  • PythonCall umożliwia integrację funkcji Pythona z kodem Julii.
  • Można użyć dowolnego pakietu Pythona, pod warunkiem że jest on zainstalowany.
using PythonCall
  • Aby załadować pakiet z Pythona, należy użyć pyimport.
pytime = pyimport("time")
  • PythonCall oferuje wiele zaawansowanych funkcji, które nie są omawiane w tym kursie.
Julia średnio zaawansowana

Wywoływanie funkcji Pythona

  • Można wywoływać dowolne funkcje z podstawowego pakietu time.
using PythonCall
pytime = pyimport("time")
println(pytime.ctime())
Sun Jan 22 12:16:28 2023
  • Można łączyć wiele funkcji, w tym formatowanie z Pythona.
println(pytime.strftime("%m-%Y", pytime.localtime()))
01-2023
Julia średnio zaawansowana

Importowanie bibliotek R

  • RCall umożliwia integrację funkcji R z kodem Julii.
  • Przed zainstalowaniem pakietu RCall wymagana jest instalacja R.
  • Można użyć dowolnego pakietu R, pod warunkiem że jest on zainstalowany.
using RCall
  • Aby załadować pakiet z R, należy użyć @rimport.
@rimport base
@rimport ggplot2
  • RCall oferuje wiele zaawansowanych funkcji, które nie są omawiane w tym kursie.
Julia średnio zaawansowana

Wywoływanie funkcji R

  • W tym przykładzie wywołamy funkcje z bazowego środowiska R.
  • Przy importowaniu pakietu można podać alias.
using RCall
@rimport base as r_base
r_base.sum([1, 2, 3, 4, 5])
RObject{IntSxp}
[1] 15
Julia średnio zaawansowana

Wynik sum w R

  • Możemy szybko porównać wyniki z Julii z wynikami z R.
RObject{IntSxp}
[1] 15

Wynik konsoli R

Julia średnio zaawansowana

Wywoływanie kolejnych funkcji R

  • Teraz wypróbujemy funkcję abbreviate, również z pakietu base.
r_base.abbreviate(["Anthony", "Rachel", "Steve", "Julia"], 3)
RObject{StrSxp}
Anthony  Rachel   Steve   Julia
  "Ant"   "Rch"   "Stv"   "Jul"

Julia średnio zaawansowana

Czas na ćwiczenia!

Julia średnio zaawansowana

Preparing Video For Download...