Có thư viện R cho Python không?
Khi tôi còn là sinh viên đại học, các khóa học về thống kê (Phân tích sống còn, Phân tích đa biến, v.v.) được dạy bằng R. Tuy nhiên, vì tôi muốn học Khoa học dữ liệu, tôi chọn Python vì nó có vẻ “ma quái” đối với tôi Show Bằng cách chỉ làm việc với Python, tôi tình cờ phát hiện ra nhu cầu triển khai một số kỹ thuật Thống kê như Thử nghiệm Grubb cho các giá trị ngoại lai, Markov Chain Monte Carlo cho mô phỏng hoặc Mạng Bayesian cho dữ liệu tổng hợp. Do đó, bài viết này nhằm mục đích hướng dẫn giới thiệu để kết hợp R trong quy trình làm việc của bạn với tư cách là Nhà khoa học dữ liệu Python. Trong trường hợp, bạn muốn tích hợp Python vào quy trình làm việc của mình với tư cách là Nhà khoa học dữ liệu R, gói dạng lưới rất hữu ích, hãy xem [1] rpy2Chúng tôi chọn khung rpy2, các tùy chọn khác là pyRserve hoặc pypeR, vì nó chạy R nhúng. Nói cách khác, nó cho phép giao tiếp giữa các đối tượng Python và R thông qua rpy2. cướp, sau này chúng ta sẽ xem một ví dụ cụ thể khi chuyển đổi DataFrame của pandas thành R DataFrame. Nếu bạn gặp khó khăn trong bất kỳ bước nào dưới đây, hãy đọc tài liệu chính thức hoặc tài liệu tham khảo Chúng tôi sẽ đề cập đến ba bước thích hợp để bắt đầu làm việc với R trong Python. Cuối cùng, chúng tôi sẽ thực hiện một ví dụ thực tế và đề cập đến các chức năng khác mà gói rpy2 cho phép bạn xử lý
Nhưng trước tiên, chúng ta nên cài đặt gói rpy2 # Jupyter Notebook option 1. Cài đặt các gói RTrong R, việc cài đặt các gói được thực hiện bằng cách tải xuống từ các máy nhân bản CRAN và sau đó cài đặt chúng cục bộ. Theo cách tương tự với các mô-đun Python, các gói có thể được cài đặt và sau đó được tải # Choosing a CRAN Mirror Bằng cách chọn 2. Nhập các gói và chức năngỞ đây, chúng ta sẽ nhập các thư viện và chức năng cần thiết để thực hiện Mạng Bayesian trong ví dụ thực tế # Import packages Để nhập bất kỳ chức năng nào, thật tiện lợi khi xem khóa 'rpy2' trong từ điển của mọi gói, ví dụ: để xem các chức năng có sẵn để nhập trên bnlearn, chúng tôi chạy bnlearn.__dict__['_rpy2r']Output: Để biết thêm thông tin về cách nhập chức năng, hãy kiểm tra [4] hoặc [5] 3. Chuyển đổi pandas DataFrame thành khung dữ liệu R và ngược lạiCá nhân tôi nghĩ chức năng này cho phép bạn kết hợp khả năng mở rộng (trăn) với các công cụ thống kê (R). Như một ví dụ cá nhân, trong khi tôi đang sử dụng thư viện python Đa xử lý để thực hiện tính toán song song, tôi cũng muốn thử hàm # Choosing a CRAN Mirror0 là thứ cho phép một người hợp nhất những gì tốt nhất trong hai ngôn ngữ lập trình # Allow conversion Khi kích hoạt chuyển đổi pandas ( # Choosing a CRAN Mirror1), nhiều chuyển đổi từ R sang pandas sẽ được thực hiện tự động. Tuy nhiên, để chuyển đổi rõ ràng, chúng tôi gọi các hàm # Choosing a CRAN Mirror2 hoặc # Choosing a CRAN Mirror3 4. Ví dụ thực tế với Mạng BayesianBên cạnh các phương pháp Monte-Carlo, Bayesian Networks là một tùy chọn để mô phỏng dữ liệu. Tuy nhiên, vì ngày nay không có thư viện nào cho tác vụ này trong Python. Vì vậy, tôi chọn gói bnlearn, cho phép tìm hiểu cấu trúc đồ họa của mạng Bayesian và thực hiện suy luận từ chúng Trong ví dụ bên dưới, chúng tôi đang sử dụng thuật toán kết hợp ( # Choosing a CRAN Mirror4) để tìm hiểu cấu trúc của mạng vì nó cho phép chúng tôi sử dụng bất kỳ sự kết hợp nào giữa các thuật toán dựa trên ràng buộc và dựa trên điểm số. Tuy nhiên, tùy thuộc vào bản chất của vấn đề mà bạn nên chọn heuristic phù hợp, để biết danh sách đầy đủ các thuật toán có sẵn, xem [7]. Sau khi mạng được học, chúng tôi mô phỏng n mẫu ngẫu nhiên từ mạng bayesian bằng hàm # Choosing a CRAN Mirror5. Cuối cùng, chúng tôi thực hiện cấu trúc thử ngoại trừ để xử lý một loại lỗi cụ thể r_imputados = robjects.conversion.py2rpy(imputados) RunTimeError xảy ra khi chúng ta không muốn chức năng bị lỗi hoặc làm điều gì đó không mong muốn. Trong trường hợp này, chúng tôi phát hiện lỗi này vì đó là một cách để thông báo cho người dùng khi có sự cố xảy ra rằng đó không phải là một loại lỗi khác (đối với các trường hợp ngoại lệ hoàn chỉnh, hãy xem [9]). Như minh họa, mình bị lỗi không tìm thấy lai # Choosing a CRAN Mirror6. máy tính. lọc trong khi chạy hàm # Choosing a CRAN Mirror4 Các chức năng khácBạn có thể làm được nhiều điều hơn nữa với giao diện cấp thấp và giao diện cấp cao rpy2. Chẳng hạn, bạn có thể gọi các hàm python bằng R, hãy xem cách tìm giá trị nhỏ nhất của Hàm Colville bốn chiều thông qua Phương thức liên hợp-Gradient from rpy2.robjects.vectors import FloatVector
[1] Matt Brown. “Chạy mã Python từ R bằng cách sử dụng gói dạng lưới”. R-quán rượu. URL. https. //rstudio-pub-static. s3. amazonaws. com/407460_396f867ce3494d479fd700960879e22c. html [2] Ajay Ohri. “Sử dụng Python và R cùng nhau. 3 cách tiếp cận chính”. KDnuggets. URL. https. //www. kdnuggets. com/2015/12/using-python-r-together. html [3] Tài liệu chính thức của Rpy2. URL. https. //rpy2. github. io/doc/mới nhất/html/chỉ mục. html [4] [5] https. // stackoverflow. com/câu hỏi/49776568/calling-functions-from-within-r-packages-in-python-using-importr [6] https. // stackoverflow. com/câu hỏi/47306899/how-do-i-catch-an-rpy2-rinterface-rruntimeerror-in-python [7] Tài liệu chính thức của Bnlearn. http. //www. bnlearn. com/tài liệu/người/cấu trúc. học tập. html [8] Daniel Oehm. “Ví dụ về mạng Bayesian với Gói bnlearn”. URL. http. // độ dốc giảm dần. com/bayesian-network-example-with-the-bnlearn-package/ Làm cách nào để nhập thư viện R bằng Python?Gọi Thư viện R từ Python . Nhập thư viện. Trước tiên, bạn nên cài đặt thư viện R tương ứng trong máy tính của mình cũng như chính R, nếu bạn chưa có. . Chuyển đổi dữ liệu sang định dạng R. Tra cứu chữ ký của chức năng bạn muốn gọi và quyết định cách bạn sẽ chuyển đổi dữ liệu. . Gọi các hàm R. . Lấy dữ liệu ra khỏi R R và Python có thể hoạt động cùng nhau không?RStudio IDE có thể. Kết hợp R và Python trong một tập lệnh duy nhất . Nguồn và sử dụng các hàm Python trong R. Chỉnh sửa và chạy tập lệnh Python hoặc R.
Làm cách nào để chuyển đổi mã R trong Python?Chuyển tập lệnh R sang Python . nhập bản in sys (sys. . 3. 10. 5 (thẻ/v3. 10. 5. f377153, ngày 6 tháng 6 năm 2022, 16. 14. 13) [MSC v. 1929 64bit (AMD64)] [t cho t trong văn bản nếu "antlr" trong t] |