Khoa học dữ liệu rất khác so với lập trình. Chúng tôi chỉ sử dụng bốn ngôn ngữ - R, Python, Julia và SQL. Bây giờ, SQL là không thể thương lượng, vì mọi nhà khoa học dữ liệu phải thành thạo trong đó. Julia vẫn là đứa trẻ mới trong khối. Nhiều người tranh luận cái nào tốt hơn - Python hay R? Nhưng hôm nay, chúng tôi hỏi một câu hỏi khác - làm thế nào bạn có thể sử dụng R và Python cùng nhau?
Lúc đầu có vẻ điên rồ, nhưng nghe chúng tôi. Cả Python và R đều là ngôn ngữ ổn định được sử dụng bởi nhiều nhà khoa học dữ liệu. Ngay cả các nhà phát triển gói dày dạn, chẳng hạn như Hadley Wickham, mượn từ BeauftifulSoup
[Python] để thực hiện các gói cào web Rvest
[r]. Phát minh lại bánh xe không có ý nghĩa.
Hôm nay chúng tôi sẽ khám phá một vài tùy chọn bạn có nếu bạn muốn sử dụng R và Python cùng nhau trong cùng một dự án. Hãy bắt đầu với các tùy chọn cho người dùng Python.
Mục lục:
- Gọi các kịch bản R từ Python
- Chạy mã R từ Python với RPY2
- Gọi các kịch bản python từ r
- Chạy mã Python từ R với R Markdown
- Sự kết luận
Cách gọi các kịch bản R từ Python
Sử dụng R và Python cùng một lúc là cực kỳ dễ dàng nếu bạn đã chuẩn bị các tập lệnh R của mình. Gọi họ từ Python sôi sục xuống một dòng mã duy nhất. Hãy cùng bao gồm các kịch bản R trước khi lặn xa hơn.
Nó thực sự là một đơn giản, vì nó chỉ in một số văn bản giả vào bảng điều khiển:
Ở đầu Python, bạn sẽ cần sử dụng mô -đun subprocess
để chạy lệnh shell. Tất cả các tập lệnh R có thể được chạy với cuộc gọi Rscript
:
Dưới đây bạn sẽ thấy đầu ra:
Hình 1 - Chạy tập lệnh R từ Python
Dòng được in thành công vào bảng điều khiển và số 0 đã được trả lại. Đó là điều - cách tiếp cận này là tuyệt vời nếu tập lệnh R của bạn thực hiện các nhiệm vụ hết lần này đến lần khác. Nó bị thiếu nếu bạn muốn sử dụng đầu ra từ mã R trong Python.
Đó là một thiếu sót rằng tùy chọn tiếp theo để sử dụng R và Python cùng địa chỉ.
Cách chạy mã R từ Python với RPY2
Bây giờ chúng tôi sẽ đi sâu vào những thứ tốt. Bạn phải cài đặt gói rpy2
trong Python để theo dõi. Nó giả định rằng bạn cũng đã cài đặt và cấu hình.
Để bắt đầu, chúng tôi sẽ sử dụng mô hình con robjects
để truy cập các đối tượng R, chẳng hạn như số PI:
Ở đây, những gì mà người được lưu trữ trong biến:
Hình 2 - Đối tượng Pi R
Bạn có thể kiểm tra loại của nó. Nó có một vectơ nổi đặc trưng R:
Hình ảnh 3 - Loại đối tượng R Pi
Có rất nhiều bạn có thể làm hơn là truy cập các đối tượng R riêng lẻ. Ví dụ: bạn cũng có thể khai báo và chạy các chức năng R. Đoạn mã bên dưới chỉ cho bạn cách khai báo một hàm để thêm số và gọi nó hai lần. Chỉ cần cẩn thận hơn, hãy đảm bảo bao quanh mã R với dấu ngoặc kép ba:
Ở đây, đầu ra từ đoạn mã trên:
Hình 4 - Chức năng gọi R trong Python
Nhiều lần bạn đã thắng được tìm các gói R tích hợp đủ cho trường hợp sử dụng cụ thể của bạn. Bạn có thể cài đặt các gói R bổ sung, bên ngoài thông qua Python với mô hình con rpackages
:
DataFrames
Ngoài ra, còn có một tùy chọn để làm việc với R DataFrames trong Python. Đoạn mã bên dưới chỉ cho bạn cách nhập SubPackage datasets
và truy cập bộ dữ liệu MTCARS nổi tiếng:
Tại đây, bộ dữ liệu trông như thế nào khi được hiển thị trong Python:
Hình ảnh 5 - Bộ dữ liệu MTCARS dưới dạng khung dữ liệu
Hình dung
Và đối với bit cuối cùng, chúng tôi sẽ chỉ cho bạn cách trực quan hóa bộ dữ liệu với gói Riên ggplot2
. Đến bây giờ, bạn có thể hiển thị các số liệu trực tiếp trong sổ ghi chép, vì vậy bạn sẽ cần lưu hình vào một tệp bằng gói grDevices
. Mã chịu trách nhiệm vẽ sơ đồ sẽ đi giữa cuộc gọi đến ____10 và Rvest
1, vì vậy hãy ghi nhớ điều đó để tham khảo trong tương lai:
Hình ảnh 6 - Sử dụng GGPLOT2 trong Python
Và đó là cách mà bạn có thể sử dụng R và Python cùng một lúc bằng cách chạy mã R từ Python. Hãy để đảo ngược vai trò tiếp theo và khám phá các tùy chọn cho người dùng R.
Tìm kiếm để tạo kiểu cho các lô phân tán của bạn? Đọc hướng dẫn toàn diện của chúng tôi để các sơ đồ phân tán tuyệt đẹp với R và GGPLOT2.
Cách gọi các tập lệnh Python từ r
Người dùng R có thời gian chạy các tập lệnh thậm chí dễ dàng hơn từ ngôn ngữ lập trình đối diện. Bạn sẽ phải cài đặt gói Rvest
2 nếu bạn muốn theo dõi, vì nó chịu trách nhiệm chạy các tập lệnh Python và định cấu hình môi trường Python.
Trước tiên, hãy để viết một kịch bản Python. Nó sẽ là một đơn giản, vì nó in một dòng duy nhất vào bảng điều khiển:
Trong R, bạn sẽ phải nhập gói Rvest
2 và gọi hàm Rvest
4 với đường dẫn đến tập lệnh Python được cung cấp:
Ở đây, đầu ra được hiển thị trong bảng điều khiển R:
Hình 7 - Chạy các tập lệnh Python từ R
Như bạn có thể thấy, mọi thứ hoạt động như quảng cáo. Bạn có thể tiến thêm một bước và sử dụng phiên bản Python cụ thể, môi trường ảo hoặc môi trường Anaconda. Sử dụng bất kỳ trong ba cuộc gọi chức năng bên dưới làm tài liệu tham khảo:
Tiếp theo, chúng tôi sẽ khám phá những cách nâng cao hơn người dùng R có thể sử dụng R và Python cùng một lúc.
Các lập trình viên R có thể tạo ra các mô hình học máy không? Đúng! Tìm hiểu làm thế nào với Fast.ai trong R. & NBSP;
Cách chạy mã python từ r
Gói Rvest
2 đi kèm với động cơ Python bạn có thể sử dụng trong R Markdown. Reticulation cho phép bạn chạy các đoạn mã Python, in đầu ra Python, truy cập các đối tượng Python, v.v.
Để bắt đầu, hãy tạo tệp R Markdown [RMD] mới và thực hiện thiết lập thông thường - Nhập thư viện và cấu hình vị trí Python:
Bây giờ bạn có thể tạo một khối R hoặc một khối python bằng cách viết ba backticks và chỉ định ngôn ngữ bên trong dấu ngoặc xoăn. Chúng tôi sẽ bắt đầu với Python. Đoạn mã bên dưới nhập thư viện Numpy, khai báo một mảng và in nó:
Hình ảnh 8 - Danh sách Python được in bằng R Markdown
Nhưng điều gì sẽ xảy ra nếu bạn muốn chuyển đổi mảng Python sườn numpy thành một vectơ r? Hóa ra, bạn có thể truy cập các đối tượng Python trong r bằng cách tiền tố tên biến với Rvest
6. Đây là một ví dụ:
Hình 9 - Mảng Numpy được chuyển đổi thành V Vector
Như bạn tưởng tượng, các khả năng từ đây là vô tận. Bây giờ chúng tôi sẽ chỉ cho bạn cách nhập thư viện Pandas, tải trong bộ dữ liệu từ GitHub và in năm hàng đầu tiên của nó:
Hình ảnh 10 - Trưởng bộ dữ liệu MTCARS
Dễ dàng, phải không? Bạn có thể nhập bất kỳ thư viện Python nào và viết bất kỳ mã Python nào bạn muốn, sau đó truy cập các biến và hàm được khai báo với R.
Thư viện trực quan hóa dữ liệu tiêu chuẩn Python DE-FACTO là matplotlib, và nó cũng dễ sử dụng trong R Markdown. Chỉ cần nhớ gọi phương thức Rvest
7, vì con số won đã được hiển thị nếu không:
Hình 11 - Biểu đồ Matplotlib trong R Markdown
Và đó là cách mà bạn có thể chạy mã Python trong R và R Markdown. Đó là tất cả những gì chúng tôi muốn trình bày trong bài viết hôm nay, vì vậy, hãy để một bản tóm tắt ngắn gọn tiếp theo.
Tóm tắt sử dụng R và Python cùng nhau
Hôm nay, bạn đã học được cách sử dụng R và Python cùng nhau từ quan điểm của cả người dùng R và Python. Hy vọng, bây giờ bạn có thể kết hợp hai ngôn ngữ để có được những điều tốt nhất của cả hai thế giới. Ví dụ: một số gói R, chẳng hạn như Rvest
8 không có đối thủ cạnh tranh trực tiếp trong Python. Tái tạo bánh xe không có ý nghĩa. Vì vậy, don. Chỉ cần xử lý dữ liệu với Python và mô hình hóa nó bằng R.
Tại sao bạn không cho nó thử như một bài tập về nhà? Tải xuống bộ dữ liệu hành khách của hãng hàng không, tải và xử lý trước trong Python và gói Riên Rvest
8 để đưa ra dự báo. Chia sẻ kết quả của bạn với chúng tôi trên Twitter - @appsilon. Chúng tôi rất thích xem những gì bạn nghĩ ra.
Bạn muốn bẻ khóa cuộc phỏng vấn mã hóa khoa học dữ liệu và Python sắp tới của bạn? Dưới đây là 7 câu hỏi hàng đầu bạn phải biết cách trả lời.
Bài viết Làm thế nào để sử dụng R và Python cùng nhau? Hãy thử 2 gói này đến từ ứng dụng | Bảng điều khiển Shiny doanh nghiệp r.