Niin paljon kuin rakastan R: tä, on selvää, että Python on myös hieno kieli - sekä tietojenkäsittelyyn että yleiskäyttöön. Ja voi olla hyviä syitä, miksi R-käyttäjä haluaa tehdä joitain asioita Pythonissa. Ehkä se on loistava kirjasto, jolla ei vielä ole R-vastaavuutta. Tai API, jota haluat käyttää ja jolla on esimerkkikoodi Pythonissa, mutta ei R.
R reticulate -paketin ansiosta voit suorittaa Python-koodin suoraan R-komentosarjassa - ja siirtää tietoja edestakaisin Pythonin ja R: n välillä.
Retikuloinnin lisäksi järjestelmään on asennettava Python. Tarvitset myös kaikki Python-moduulit, paketit ja tiedostot, joista Python-koodi riippuu.
Jos haluat seurata mukana, asenna ja lataa verkkoinstall.packages ("reticulate")
ja kirjasto (verkko)
.
Jotta asiat pysyisivät yksinkertaisina, aloitetaan vain kahdella Python-koodirivillä, jotta tuodaan NumPy-paketti tieteelliseen perustietojenkäsittelyyn ja luodaan taulukko neljästä numerosta. Python-koodi näyttää tältä:
tuo numerotunnus nimellä npmy_python_array = np.array ([2,4,6,8])
Ja tässä on yksi tapa tehdä se oikein R-komentosarjassa:
py_run_string ("tuoda numpy nimellä np")py_run_string ("my_python_array = np.array ([2,4,6,8])")
py_run_string ()
function suorittaa minkä tahansa Python-koodin sulkeissa ja lainausmerkeissä.
Jos suoritat kyseisen koodin R: ssä, se ei ehkä näytä tapahtuneen mitään. Mikään ei näy RStudio-ympäristöruudussa, eikä arvoa palauteta. Jos juokset tulosta (my_python_array)
R: ssä saat virheilmoituksen my_python_array
ei ole olemassa.
Mutta jos suoritat aPython Tulosta komento py_run_string ()
toiminto kuten
py_run_string ("kohteelle my_python_array: print (item)")
sinun pitäisi nähdä tulos.
Tällaisesta Python-koodin ajamisesta rivi kerrallaan tulee kuitenkin ärsyttävää, jos sinulla on enemmän kuin pari koodiriviä. Joten on olemassa muutamia muita tapoja suorittaa Python R: ssä ja verkottaa.
Yksi on laittaa kaikki Python-koodi tavalliseen .py-tiedostoon ja käyttää py_run_file ()
toiminto. Toinen tapa, josta pidän, on käyttää R Markdown -asiakirjaa.
R Markdown antaa sinun yhdistää tekstiä, koodia, koodituloksia ja visualisointeja yhteen asiakirjaan. Voit luoda uuden R Markdown -asiakirjan RStudiossa valitsemalla Tiedosto> Uusi tiedosto> R Markdown.
Koodipalat alkavat kolmella taaksepäin (```
) ja päättyvät kolmeen taaksepäin, ja niillä on oletusarvoisesti harmaa tausta RStudiossa.
Tämä ensimmäinen osa on R-koodia varten - voit nähdä sen r
avainkannattimen jälkeen. Se lataa verkkopaketin ja määrität sitten haluamasi Python-version. (Jos et määritä, se käyttää järjestelmän oletusta.)
`` {r setup, include = EPÄTOSI, kaiku = TOSI}
kirjasto (verkko)
use_python ("/ usr / bin / python")
```
Tämä alla oleva toinen osa on tarkoitettu Python-koodille. Voit kirjoittaa Pythonin samalla tavalla kuin Python-tiedostoon. Alla oleva koodi tuo NumPyn, luo matriisin ja tulostaa matriisin.
`` {python}tuo numerotunnus nimellä np
my_python_array = np.array ([2,4,6,8])
kohteelle my_python_array:
tulosta (kohde)
```
Tässä on hieno osa: Voit käyttää kyseistä taulukkoa R: ssä viittaamalla siihen nimellä py $ my_python_array
(yleisesti, py $ objektinimi
).
Tähän seuraavaan koodinpalaan tallennan kyseisen Python-taulukon R-muuttujaan nimeltä my_r_array
. Ja sitten tarkistan kyseisen ryhmän luokan.
`` {r}my_r_array <- py $ my_python_array
luokka (my_r_array)
``
Se on luokan "matriisi", jota ei voida odottaa tällaiselle R-objektille. Mutta voin tehdä siitä tavallisen vektorin as.vector (my_r_array)
ja suorita haluamasi R-toiminnot, kuten kertomalla kukin alkio kahdella.
`` {r}my_r_vector <- as.vector (py $ my_python_array)
luokka (my_r_vector)
my_r_vector <- my_r_vector * 2
```
Seuraava viileä osa: Voin käyttää R-muuttujaa takaisin Pythonissa, kuten r.my_r_array
(yleisemmin, r. muuttujanimi
), kuten
`` {python}my_python_array2 = r.my_r_vector
tulosta (my_python_array2)
```
Jos haluat nähdä miltä tämä näyttää asettamatta Pythonia järjestelmään, tutustu tämän tarinan yläosassa olevaan videoon.