Giao diện Python R

Nếu bạn yêu thích Khoa học dữ liệu, hai ngôn ngữ lập trình có thể xuất hiện ngay trong đầu bạn là R và Python. Tuy nhiên, thay vì coi chúng là hai lựa chọn, thường thì chúng ta lại so sánh cả hai. R và Python, là những công cụ tuyệt vời theo cách riêng của chúng nhưng thường được coi là đối thủ của nhau. Nếu bạn nhập R vs Python , trong thanh tìm kiếm của Google, bạn sẽ ngay lập tức nhận được vô số tài nguyên về các chủ đề nói về uy quyền của cái này so với cái kia

Một trong những lý do cho triển vọng như vậy là vì mọi người đã chia lĩnh vực Khoa học dữ liệu thành các phe dựa trên lựa chọn ngôn ngữ lập trình mà họ sử dụng. Có trại R và trại Python và lịch sử là minh chứng cho việc các trại không thể chung sống hòa thuận. Các thành viên của cả hai phe đều tin tưởng nhiệt thành rằng sự lựa chọn ngôn ngữ của họ tốt hơn ngôn ngữ kia. Vì vậy, theo một cách nào đó, sự khác biệt không nằm ở các công cụ mà nằm ở những người sử dụng các công cụ đó

Tại sao không sử dụng cả hai?

Có những người trong cộng đồng Khoa học dữ liệu đang sử dụng cả Python và R, nhưng tỷ lệ phần trăm của họ rất nhỏ. Mặt khác, có rất nhiều người cam kết chỉ sử dụng một ngôn ngữ lập trình nhưng lại mong muốn họ có thể tiếp cận một số khả năng của đối thủ của họ. Chẳng hạn, người dùng R đôi khi khao khát các khả năng hướng đối tượng có nguồn gốc từ Python và tương tự, một số người dùng Python khao khát phạm vi rộng của các phân phối thống kê có sẵn trong R

Hình trên là kết quả khảo sát do Red Monk thực hiện trong quý 3 năm 2018. Kết quả này dựa trên mức độ phổ biến của các ngôn ngữ trên Stack Overflow cũng như trên Github và cho thấy rõ ràng rằng cả R và Python đều được đánh giá khá cao. Do đó, không có lý do cố hữu nào là tại sao chúng ta không thể làm việc với cả hai người trong cùng một dự án. Mục tiêu cuối cùng của chúng tôi là thực hiện phân tích tốt hơn và rút ra những hiểu biết sâu sắc hơn và lựa chọn ngôn ngữ lập trình không phải là trở ngại trong việc đạt được điều đó

Tổng quan về R và Python

Chúng ta hãy xem xét các khía cạnh khác nhau của các ngôn ngữ này và những gì tốt và không tốt về chúng

con trăn

Kể từ khi được phát hành vào năm 1991, Python đã trở nên cực kỳ phổ biến và được sử dụng rộng rãi trong xử lý dữ liệu. Một số lý do cho sự phổ biến rộng rãi của nó là

  • ngôn ngữ hướng đối tượng
  • Mục đích chung
  • Có rất nhiều tiện ích mở rộng và hỗ trợ cộng đồng đáng kinh ngạc
  • Đơn giản, dễ hiểu và dễ học
  • các gói như gấu trúc, numpy và scikit-learning, khiến Python trở thành lựa chọn tuyệt vời cho các hoạt động học máy

Tuy nhiên, Python không có các gói chuyên dụng cho tính toán thống kê, không giống như R

R

Bản phát hành đầu tiên của R ra mắt vào năm 1995 và kể từ đó, nó đã trở thành một trong những công cụ được sử dụng nhiều nhất cho khoa học dữ liệu trong ngành

  • Bao gồm các gói cho hầu hết mọi ứng dụng thống kê mà người ta có thể nghĩ đến. CRAN hiện lưu trữ hơn 10 nghìn gói
  • Được trang bị các thư viện trực quan tuyệt vời như ggplot2
  • Có khả năng phân tích độc lập

Hiệu suất khôn ngoan R không phải là ngôn ngữ nhanh nhất và đôi khi có thể là một kẻ háu ăn bộ nhớ khi xử lý các bộ dữ liệu lớn

Tận dụng tốt nhất của cả hai thế giới

Chúng ta có thể sử dụng năng lực thống kê của R cùng với khả năng lập trình của Python không?

Về cơ bản, có hai cách tiếp cận mà chúng ta có thể sử dụng song song cả Python và R trong một dự án

R trong Python

  • PypeR

PypeR cung cấp một cách đơn giản để truy cập R từ Python thông qua các đường ống. PypeR cũng được bao gồm trong Chỉ mục gói của Python, cung cấp cách cài đặt thuận tiện hơn. PypeR đặc biệt hữu ích khi không cần truyền dữ liệu tương tác thường xuyên giữa Python và R. Bằng cách chạy R thông qua đường ống, chương trình Python có được tính linh hoạt trong kiểm soát quy trình phụ, kiểm soát bộ nhớ và tính di động trên các nền tảng hệ điều hành phổ biến, bao gồm Windows, GNU Linux và Mac OS

Các quy ước chuyển đổi đối tượng Python thành đối tượng R
  • pyRserve

pyRserve sử dụng Rserve làm cổng kết nối RPC. Thông qua kết nối như vậy, các biến có thể được đặt trong R từ Python và các hàm R cũng có thể được gọi từ xa. Các đối tượng R được hiển thị dưới dạng các thể hiện của các lớp do Python triển khai, với các hàm R là các phương thức được liên kết với các đối tượng đó trong một số trường hợp

  • rpy2

rpy2 chạy R nhúng trong quy trình Python. Nó tạo ra một khung có thể dịch các đối tượng Python thành các đối tượng R, chuyển chúng thành các hàm R và chuyển đổi đầu ra R trở lại thành các đối tượng Python. rpy2 được sử dụng thường xuyên hơn vì nó đang được phát triển tích cực

Một lợi thế của việc sử dụng R trong Python là chúng ta có thể sử dụng các gói tuyệt vời của R như ggplot2, dirtyr, dplyr et al một cách dễ dàng trong Python. Để làm ví dụ, hãy xem cách chúng ta có thể dễ dàng sử dụng ggplot2 để ánh xạ trong Python

  • cốt truyện cơ bản

https. //rpy2. github. io/doc/mới nhất/html/đồ họa. html#lô

  • hình học

https. //rpy2. github. io/doc/mới nhất/html/đồ họa. html#hình học

Tài nguyên

Bạn có thể muốn xem các tài nguyên sau để đánh giá sâu hơn về rpy2

  • Tài liệu chính thức của rpy2
  • RPy2. Kết hợp sức mạnh của R + Python cho Khoa học dữ liệu
  • Truy cập R từ Python bằng RPy2

Python trong R

Chúng tôi có thể chạy các tập lệnh R trong Python bằng cách sử dụng một trong các lựa chọn thay thế bên dưới

  • rJython

Gói này triển khai giao diện với Python thông qua Jython. Nó dành cho các gói khác có thể nhúng mã python cùng với R

  • rPython

rPython lại là Gói cho phép R gọi Python. Nó có thể chạy mã Python, thực hiện các lệnh gọi hàm, gán và truy xuất các biến, v.v. từ R

  • Con RắnBùa R

SnakeCharmR là phiên bản đại tu hiện đại của rPython. Nó là một nhánh rẽ từ 'rPython' sử dụng 'jsonlite' và có nhiều cải tiến hơn rPython

  • PythonInR

PythonInR làm cho việc truy cập Python từ bên trong R trở nên rất dễ dàng bằng cách cung cấp các hàm để tương tác với Python từ bên trong R

  • kẻ ô vuông

Gói reticulate cung cấp một bộ công cụ toàn diện cho khả năng tương tác giữa Python và R. Trong số tất cả các lựa chọn thay thế ở trên, cái này được sử dụng rộng rãi nhất, hơn thế nữa vì nó đang được Rstudio phát triển mạnh mẽ. Reticulate nhúng một phiên Python trong phiên R, cho phép khả năng tương tác liền mạch, hiệu suất cao. Gói này cho phép bạn viết lại mã Python thành R, tạo ra một loại dự án mới kết hợp hai ngôn ngữ lại với nhau

Gói mạng lưới cung cấp các tiện ích sau

  • Gọi Python từ R theo nhiều cách khác nhau, bao gồm R Markdown, tìm nguồn cung cấp tập lệnh Python, nhập mô-đun Python và sử dụng Python tương tác trong phiên R
  • Dịch giữa các đối tượng R và Python [ví dụ: giữa khung dữ liệu R và Pandas hoặc giữa ma trận R và mảng NumPy]
  • Liên kết linh hoạt với các phiên bản Python khác nhau bao gồm môi trường ảo và môi trường Conda

Tài nguyên

Một số tài nguyên tuyệt vời về việc sử dụng gói reticulate là

  • Tài liệu này khá mạnh mẽ và có nhiều ví dụ cũng như trường hợp sử dụng để giúp bạn bắt đầu
  • https. //longhowlam. báo chí. com/2017/04/10/test-drive-python-integration-in-r-using-the-reticulate-package/
  • RẮN TRONG GÓI. KẾT HỢP PYTHON VÀ R VỚI RETICULATE

Phần kết luận

Cả R và Python đều là những ngôn ngữ khá mạnh và một trong số chúng thực sự đủ để thực hiện nhiệm vụ Phân tích dữ liệu. Tuy nhiên, chắc chắn có một số điểm cao và thấp cho cả hai và nếu chúng ta có thể tận dụng thế mạnh của cả hai, chúng ta có thể sẽ làm tốt hơn nhiều. Dù bằng cách nào, có kiến ​​thức về cả hai sẽ giúp chúng ta linh hoạt hơn, do đó tăng cơ hội có thể làm việc trong nhiều môi trường

Thẩm quyền giải quyết

Bài báo là bản chuyển thể từ bài nói chuyện xuất sắc này của Andrew Collier mà ông đã trình bày tại Pydata Berlin vào năm 2018

R có thể tích hợp với Python không?

Các gói dạng lưới bao gồm một công cụ Python cho R Markdown . Vì vậy, bạn có thể chỉ cần viết mã python của mình trong R Markdown. bạn cũng có thể dễ dàng tiếp cận biến trong r bằng cách sử dụng r.

Tôi có thể chạy gói R bằng Python không?

Cài đặt các gói . Các khả năng để thực hiện việc này được cung cấp bởi các thư viện R và khi sử dụng Python, chúng ta có thể chỉ cần sử dụng chúng bằng cách sử dụng rpy2 . Giao diện cho các tính năng R được cung cấp trong rpy2.

Làm cách nào để sử dụng các biến R trong Python?

Để gọi các biến Python từ R, bạn chỉ cần truy cập các biến đó trong đối tượng py . Về cơ bản, py là lối vào R của bạn trong môi trường Python của bạn.

Chủ Đề