Рубрики
Без рубрики

Работа с R в Python

Давайте учимся работать с R в Python. На протяжении всей истории два языка всегда соревновались к лучшему себя в анализе данных в науке данных

Автор оригинала: Pankaj Kumar.

Работа с R в Python

Давайте научиться работать с R в Python Отказ На протяжении всей истории два языка всегда соревновались к лучшему себя в анализе данных в мире науки о данных.

С этими как а именно, г и питон.

Оба эти языки программирования имеют собственную фанбазу, и каждый по себе имеет свои преимущества.

При r обеспечивает большую поддержку статистического анализа и специализации в нем, в то время как Python предоставляет объектно-ориентированный подход и ошеломляющий номер интеграции с другими модулями.

Преимущества и недостатки как Python, так и R могут стать мощным дуэтом при совместике. Потому что там, где Python не хватает, r overpowers и наоборот.

И, следовательно, разработчики создали RPY2 Библиотека, которая наша тема на день.

Что это значит для разработчиков, которым нужна комбинация обоих? Возможность Отказ

Установка модуля RPY2

Предварительное условие, чтобы начать, это то, что RPY2 Модуль будет работать только, если у вас уже есть требуемая версия R.

Очень похоже на любой другой модуль, RPY2 Модуль потребует установки через Установщик пакета PIP Для вашего распределения Python.

В PIP, команда для установки RPY2 просто,

pip install rpy2

Это должно автоматически устанавливать требуемый модуль, и мы можем перейти к работе с ним внутри сценария Python!

Если вы хотите проверить функции RPY2, прежде чем получить ноги Система мокрые, вы можете попробовать работать с изображением Docker First, проверьте RPY2 докерный хаб .

Использование R в Python с модулем RPY2

Для использования R в Python мы сначала импортируем RPY2 в код.

import rpy2
from rpy2 import robjects

Теперь мы можем начать работать с R в Python. Но, прежде чем попасть в работу с лучшими из обоих миров, это обеспечило бы полезно изучить небольшие различия в использовании языка R в этом модуле.

1. Импорт пакетов через RPY2

Большая работа с R связана с импортными пакетами для анализа данных. И RPY2 Предоставляет нам это, через py2.robjects.packages.import () функция.

Эта функция служит способом для импорта пакетов, предназначенных для R в Python, где мы можем работать с ними, по существу, имеют функции обеих языков, присутствующих в скрипте.

from rpy2.robjects.packages import importr
# imports the base module for R.
base = importr("base")

# imports the utils package for R.
utils = importr("utils")

Теперь мы можем работать с функциями, которые были импортированы через этот метод.

2. Работа с R в Python

Способ работы с r в сценарии состоит в том, чтобы использовать Robjects.r экземпляр, который позволяет нам по существу использовать консоль R.

Если вам интересно, как именно это работает, это потому, что RPY2 Модуль запущен встроенный герметик.

# Essentially retrieving the value of pi in the R console
pi = robjects.r['pi']
print(pi[0])

# Output : 3.14159265358979

Хотя этот подход может работать на одну строку кода. Стоит упомянуть, что это не жизнеспособный подход, если мы хотим работать с огромным количеством кода, который нам нужен обрабатывается в R.

К счастью, мы можем ввести целый блок кода в три кавычка Отказ

robjects.r('''
        # create a function `f`
        f <- function(r, verbose=FALSE) {
            if (verbose) {
                cat("I am calling f().\n")
            }
            2 * pi * r
        }
        # call the function `f` with argument value 3
        f(3)
        ''')
# The result of the function is returned to the Python Environment

Сама функция все еще присутствует в глобальной среде R, но доступна с помощью команды, robjects.globalenv ['F'] , где F это переменная в нашей среде R.

RPY2 Модуль предоставляет нам много функциональных возможностей, и в то время как он может выглядеть немного усердно в начале, в основном это просто синтаксис, упомянующий среду R.

Вот несколько примеров, работающих с различными функциями в R!

# Working with different kinds of vectors
res1 = robjects.StrVector(['abc', 'def'])
res2 = robjects.IntVector([1, 2, 3])
res3 = robjects.FloatVector([1.1, 2.2, 3.3])

print(res1.r_repr())
# Output : c("abc", "def")

print(res2.r_repr())
# Output : 1:3

print(res3.r_repr())
# Output : c(1.1, 2.2, 3.3)

# Working with different functions of R
rsort = robjects.r['sort']
res4 = rsort(robjects.IntVector([1,2,3]), decreasing=True)
print(res4.r_repr())

# Working with matrices in R
v = robjects.FloatVector([1.1, 2.2, 3.3, 4.4, 5.5, 6.6])
m = robjects.r['matrix'](v, nrow = 2)
print(m)
# Output :
#       [,1] [,2] [,3]
# [1,]  1.1  3.3  5.5
# [2,]  2.2  4.4  6.6

# Working with Graphics in R
r = robjects.r

x = robjects.IntVector(range(10))
y = r.rnorm(10)

r.X11()

r.layout(r.matrix(robjects.IntVector([1,2,3,2]), nrow=2, ncol=2))
r.plot(r.runif(10), y, xlab="runif", ylab="foo/bar", col="red")

3. Движение вперед

Реализация работы с двумя разными языками для работы над решениями проблем открывает множество дверей к новым открытиям.

Сдвиньте вперед с работой с R в Python, будут использовать функциональные возможности, предоставленные Python, чтобы работать с различными различными модулями и расширять функциональность в полях науки и математической логики данных.

Интеграция Пандас , Opencv и Scikit – Учите В программу стоит поиграть в целях расширения и проверки новых идей без какого-либо барьера в функциях, предоставляемых языком.

Если вы обнаружите, что имеется ли определенная функция для работы в RPY2 Модуль, не стесняйтесь просматривать свои ухоженные документация!

Альтернативы RPY2

Пока RPY2 Это отличный модуль, вы можете пожелать в других модулях, чтобы проверить, какой из них подходит вам лучше всего.

Итак, вот список, который поможет вам выяснить, какой модуль вам нужен, а не находить обходные пути для функций, которые не существуют или не подходят для вашего потрясающего в RPY2 Отказ

Заключение

Теперь, когда вы знаете, что RPY2 Модуль предоставляет, и как настроить его, чтобы начать работу с работы в вашем коде, вы можете установить парус, чтобы вычислить без беспокойства об борьбе между R и Python.

В конце концов, они оба на вашей стороне сейчас!

Посмотрите на наших других работ с другими модулями на Пандах и Матплотлиб, в вашем путешествии с математикой и наукой о данных.

Рекомендации