Programmēšana

Kā palaist Python R

Lai arī kā es mīlu R, ir skaidrs, ka Python ir arī lieliska valoda - gan datu zinātnei, gan vispārējas nozīmes skaitļošanai. Var būt pamatoti iemesli, kādēļ R lietotājs vēlas veikt dažas darbības Python. Varbūt tā ir lieliska bibliotēka, kurai vēl nav R ekvivalenta. Vai arī API, kurai vēlaties piekļūt un kurai ir koda paraugs Python, bet nav R.

Pateicoties paketei R reticulate, jūs varat palaist Python kodu tieši R skripta ietvaros un nodot datus turp un atpakaļ starp Python un R.

Papildus retikulācijai jūsu sistēmā ir jāinstalē Python. Jums ir nepieciešami arī visi Python moduļi, pakotnes un faili, no kuriem atkarīgs jūsu Python kods.

Ja vēlaties sekot līdzi, instalējiet un ielādējiet tīklu arinstall.packages ("reticulate") un bibliotēka (tīkls).

Lai viss būtu vienkārši, sāksim tikai ar divām Python koda rindiņām, lai importētu NumPy pakotni pamata zinātniskajai skaitļošanai un izveidotu četru skaitļu masīvu. Python kods izskatās šādi:

importēt numpy kā np

my_python_array = np.array ([2,4,6,8])

Un šeit ir viens veids, kā to izdarīt pareizi ar R skriptu:

py_run_string ("importēt numpy kā np")

py_run_string ("my_python_array = np.array ([2,4,6,8])")

The py_run_string () funkcija izpilda neatkarīgi no tā, kāds Python kods ir iekavās un pēdiņās.

Ja palaižat šo kodu R, var šķist, ka nekas nav noticis. Jūsu RStudio vides rūtī nekas neparādās, un vērtība netiek atgriezta. Ja skrien drukāt (my_python_array) R, jūs saņemat kļūdu my_python_array nepastāv.

Bet, ja jūs vadāt aPython drukas komandu iekšpusē py_run_string () funkcija, piemēram,

py_run_string ("vienumam my_python_array: print (vienums)")

jums vajadzētu redzēt rezultātu.

Tomēr tas kļūs kaitinošs, palaižot Python kodu šādi pa rindām, ja jums ir vairāk nekā pāris koda rindas. Tātad ir daži citi veidi, kā palaist Python R un retikulēt.

Viens no tiem ir ievietot visu Python kodu parastā .py failā un izmantot py_run_file () funkciju. Vēl viens veids, kā man patīk, ir izmantot R Markdown dokumentu.

R Markdown ļauj vienā dokumentā apvienot tekstu, kodu, koda rezultātus un vizualizācijas. Jūs varat izveidot jaunu R Markdown dokumentu RStudio, izvēloties File> New File> R Markdown.

Kodu gabali sākas ar trim aizmugurēm (```) un beidzas ar trim taustiņiem, un pēc noklusējuma tiem RStudio ir pelēks fons.

Šis pirmais gabals ir paredzēts R kodam - to var redzēt ar r aiz atvēruma kronšteina. Tas ielādē reticulate paketi un pēc tam jūs norādāt izmantojamo Python versiju. (Ja nenorādīsit, tā izmantos jūsu sistēmas noklusējumu.)

"{r iestatīšana, ietver = FALSE, echo = TRUE}

bibliotēka (tīkls)

use_python ("/ usr / bin / python")

```

Šis otrais gabals zemāk ir paredzēts Python kodam. Jūs varat ierakstīt Python tāpat kā jūs Python failā. Zemāk redzamais kods importē NumPy, izveido masīvu un izdrukā masīvu.

"{python}

importēt numpy kā np

my_python_array = np.array ([2,4,6,8])

vienumam my_python_array:

izdrukāt (prece)

```

Lūk, foršā daļa: Jūs varat izmantot šo masīvu R, atsaucoties uz to kā py $ my_python_array (vispārīgi py $ objekta nosaukums).

Šajā nākamajā koda fragmentā es glabāju šo Python masīvu R mainīgajā, ko sauc my_r_array. Un tad es pārbaudu šī masīva klasi.

"{r}

my_r_array <- py $ my_python_array

klase (my_r_array)

``

Tas ir klases "masīvs", kas nav tieši tas, ko jūs varētu sagaidīt attiecībā uz šādu R objektu. Bet es to varu pārvērst par regulāru vektoru ar as.vector (my_r_array) un veiciet visas R operācijas, kuras es tajā vēlētos, piemēram, reizinot katru vienumu ar 2.

"{r}

my_r_vector <- as.vector (py $ my_python_array)

klase (mans_r_vektors)

my_r_vector <- my_r_vector * 2

```

Nākamā atdzistā daļa: Es varu izmantot šo R mainīgo atpakaļ Python, kā r.my_r_array (vispārīgāk, r.variablename), piemēram,

"{python}

my_python_array2 = r.my_r_vector

drukāt (my_python_array2)

```

Ja vēlaties redzēt, kā tas izskatās, neinstalējot Python savā sistēmā, skatiet videoklipu šī stāsta augšdaļā.

$config[zx-auto] not found$config[zx-overlay] not found