Προγραμματισμός

Πώς να τρέξετε το Python στο R

Όσο μου αρέσει το R, είναι σαφές ότι η Python είναι επίσης μια εξαιρετική γλώσσα - τόσο για την επιστήμη των δεδομένων όσο και για τους υπολογιστές γενικής χρήσης. Και μπορεί να υπάρχουν καλοί λόγοι που ένας χρήστης R θα ήθελε να κάνει κάποια πράγματα στο Python. Ίσως είναι μια υπέροχη βιβλιοθήκη που δεν διαθέτει ισοδύναμο R (ακόμα). Ή ένα API στο οποίο θέλετε να αποκτήσετε πρόσβαση που έχει δείγμα κώδικα στο Python αλλά όχι στο R.

Χάρη στο πακέτο R reticulate, μπορείτε να εκτελέσετε τον κώδικα Python μέσα σε ένα σενάριο R — και να μεταβιβάσετε δεδομένα μεταξύ των Python και R.

Εκτός από το δικτυωτό, πρέπει να έχετε εγκαταστήσει το Python στο σύστημά σας. Χρειάζεστε επίσης τυχόν μονάδες, πακέτα και αρχεία Python από τα οποία εξαρτάται ο κώδικας Python.

Εάν θέλετε να ακολουθήσετε, εγκαταστήστε και φορτώστε το δικτυωτό μεinstall.packages ("δικτυωτό") και βιβλιοθήκη (δικτυωτό).

Για να διατηρήσουμε τα πράγματα απλά, ας ξεκινήσουμε με δύο γραμμές κώδικα Python για να εισαγάγουμε το πακέτο NumPy για βασικούς επιστημονικούς υπολογιστές και να δημιουργήσουμε μια σειρά τεσσάρων αριθμών. Ο κώδικας Python μοιάζει με αυτόν:

εισαγωγή numpy ως np

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

Και εδώ είναι ένας τρόπος να το κάνετε αυτό σωστά σε ένα σενάριο R:

py_run_string ("εισαγωγή numpy ως np")

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

ο py_run_string () Η συνάρτηση εκτελεί ό, τι κώδικα Python βρίσκεται εντός παρενθέσεων και εισαγωγικών.

Εάν εκτελέσετε αυτόν τον κωδικό στο R, μπορεί να φαίνεται ότι δεν συνέβη τίποτα. Τίποτα δεν εμφανίζεται στο παράθυρο περιβάλλοντος RStudio και δεν επιστρέφεται καμία τιμή. Εάν τρέχετε εκτύπωση (my_python_array) στο R, εμφανίζεται ένα σφάλμα που my_python_array δεν υπάρχει.

Αλλά αν τρέχετε έναΠύθων εντολή εκτύπωσης μέσα στο py_run_string () λειτουργία όπως

py_run_string ("για αντικείμενο στο my_python_array: print (item)")

θα πρέπει να δείτε ένα αποτέλεσμα.

Παρόλα αυτά, θα είναι ενοχλητικό να τρέχετε γραμμικά τον κώδικα Python, αν έχετε περισσότερες από μερικές γραμμές κώδικα. Υπάρχουν λοιπόν μερικοί άλλοι τρόποι για να εκτελέσετε το Python στο R και να πετύχετε.

Το ένα είναι να βάλετε όλο τον κώδικα Python σε ένα κανονικό αρχείο .py και να χρησιμοποιήσετε το py_run_file () λειτουργία. Ένας άλλος τρόπος που μου αρέσει είναι να χρησιμοποιήσω ένα έγγραφο R Markdown.

Το R Markdown σας επιτρέπει να συνδυάσετε κείμενο, κώδικα, αποτελέσματα κώδικα και οπτικοποιήσεις σε ένα μόνο έγγραφο. Μπορείτε να δημιουργήσετε ένα νέο έγγραφο R Markdown στο RStudio επιλέγοντας File> New File> R Markdown.

Τα κομμάτια κώδικα ξεκινούν με τρία backticks (```) και τελειώστε με τρία backticks και από προεπιλογή έχουν γκρίζο φόντο στο RStudio.

Αυτό το πρώτο κομμάτι είναι για τον κωδικό R - μπορείτε να το δείτε με το ρ μετά το βραχίονα ανοίγματος. Φορτώνει το πακέτο δικτυωμάτων και στη συνέχεια καθορίζετε την έκδοση του Python που θέλετε να χρησιμοποιήσετε. (Εάν δεν προσδιορίσετε, θα χρησιμοποιήσει το σύστημά σας ως προεπιλογή.)

"{r setup, include = FALSE, echo = TRUE}

βιβλιοθήκη (δικτυωτό)

use_python ("/ usr / bin / python")

```

Αυτό το δεύτερο κομμάτι παρακάτω είναι για τον κωδικό Python. Μπορείτε να πληκτρολογήσετε το Python όπως θα κάνατε σε ένα αρχείο Python. Ο παρακάτω κώδικας εισάγει το NumPy, δημιουργεί έναν πίνακα και εκτυπώνει τον πίνακα.

"{python}

εισαγωγή numpy ως np

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

για αντικείμενο στο my_python_array:

εκτύπωση (αντικείμενο)

```

Εδώ είναι το ωραίο μέρος: Μπορείτε να χρησιμοποιήσετε αυτόν τον πίνακα στο R αναφερόμενο σε αυτό ως py $ my_python_array (γενικά, py $ objectname).

Σε αυτό το επόμενο κομμάτι κώδικα, αποθηκεύω αυτόν τον πίνακα Python σε μια μεταβλητή R που ονομάζεται my_r_array. Και μετά ελέγχω την κλάση αυτού του πίνακα.

"" {r}

my_r_array <- py $ my_python_array

τάξη (my_r_array)

``

Είναι μια τάξη «πίνακας», που δεν είναι ακριβώς αυτό που θα περίμενε κανείς για ένα αντικείμενο R σαν αυτό. Αλλά μπορώ να το μετατρέψω σε κανονικό φορέα με as.vector (my_r_array) και εκτελέστε τις λειτουργίες R που θα ήθελα, όπως πολλαπλασιάζοντας κάθε στοιχείο με 2.

"" {r}

my_r_vector <- as.vector (py $ my_python_array)

τάξη (my_r_vector)

my_r_vector <- my_r_vector * 2

```

Επόμενο δροσερό μέρος: Μπορώ να χρησιμοποιήσω αυτή τη μεταβλητή R στο Python, ως r.my_r_array (πιο γενικά, r.variablename), όπως

"{python}

my_python_array2 = r.my_r_vector

εκτύπωση (my_python_array2)

```

Αν θέλετε να δείτε πώς μοιάζει χωρίς να ρυθμίσετε το Python στο σύστημά σας, ρίξτε μια ματιά στο βίντεο στην κορυφή αυτής της ιστορίας.