Integrando Python ao R

Python
R
RStudio
Autor

Jeanne Franco

Data de Publicação

30 de abril de 2025

Como Utilizar o Python no R?

Introdução

O R apresenta diversas vantagens e é eficiente para análises estatísticas e visualização de dados. Em contrapartida, o Python é poderoso para programação geral e machine learning. Mas sabia que é possível usar os dois juntos no mesmo projeto? Nesta postagem, vamos explorar como integrar Python no R usando o pacote reticulate.

Instalando e Configurando o reticulate

O primeiro passo é instalar o pacote reticulate no R usando o seguinte código na IDE do RStudio e em um arquivo da linguagem R:

#install.packages("reticulate")
library(reticulate)

Exemplo 1: Executando Código Python no R

Usando py_run_string():

# Executando um script Python simples

py_run_string("
x = 10
y = 20
z = x + y
print(z)
")
30

Exemplo 2: Usando Pacotes Python no R

Você pode importar bibliotecas Python como se fossem pacotes do R, mas ao invés de usar a função library do R, você usa a função import. Por exemplo, vamos usar a biblioteca numpy:

np <- import("numpy")

# Criando um array numpy

arr <- np$array(c(1, 2, 3, 4, 5))
print(arr)
[1] 1 2 3 4 5
# Calculando a média com numpy

media <- np$mean(arr)
print(paste("Média:", media))
[1] "Média: 3"

Exemplo 3: Criando Gráficos com Matplotlib

Vamos criar um gráfico simples usando matplotlib:

plt <- import("matplotlib.pyplot")

# Dados

x <- c(1, 2, 3, 4, 5)
y <- c(2, 3, 5, 7, 11)

# Criando o gráfico

plt$plot(x, y)
[[1]]
<matplotlib.lines.Line2D object at 0x00000233B5C8D220>
plt$xlabel("Eixo X")
Text(0.5, 0, 'Eixo X')
plt$ylabel("Eixo Y")
Text(0, 0.5, 'Eixo Y')
plt$title("Gráfico Gerado no Python via R")
Text(0.5, 1.0, 'Gráfico Gerado no Python via R')
plt$show()

Exemplo 4: Unindo dois gráficos em uma mesma janela

# Gráfico 1

# Dados

x <- c(1, 2, 3, 4, 5)
y <- c(2, 3, 5, 7, 11)

# Criando o gráfico

plt$plot(x, y)
[[1]]
<matplotlib.lines.Line2D object at 0x00000233B8569070>
plt$xlabel("Eixo X")
Text(0.5, 0, 'Eixo X')
plt$ylabel("Eixo Y")
Text(0, 0.5, 'Eixo Y')
plt$title("Gráfico Gerado no Python via R")
Text(0.5, 1.0, 'Gráfico Gerado no Python via R')
plt$show()

# Limpa a figura atual antes do próximo gráfico
plt$clf()  # Clear figure

# Gráfico 2

tempo_meses <- c("Fevereiro", "Abril", "Junho", "Agosto", "Outubro")
cresc_planta_cm <- c(3, 5, 7.4, 9.3, 12)

# Criando o gráfico

plt$bar(tempo_meses, cresc_planta_cm)
<BarContainer object of 5 artists>
plt$xlabel("Tempo (meses)")
Text(0.5, 0, 'Tempo (meses)')
plt$ylabel("Crescimento de uma planta (cm)")
Text(0, 0.5, 'Crescimento de uma planta (cm)')
plt$show()

# Mostrando todas as figuras em uma mesma janela

plt$subplot(1, 2, 1) # 1 linha, duas colunas, grafico 1
<AxesSubplot:>
plt$plot(x, y)
[[1]]
<matplotlib.lines.Line2D object at 0x00000233B8874610>
plt$xlabel("Eixo X")
Text(0.5, 0, 'Eixo X')
plt$ylabel("Eixo Y")
Text(0, 0.5, 'Eixo Y')
plt$subplot(1, 2, 2) # 1 linha, duas colunas, grafico 2
<AxesSubplot:>
plt$bar(tempo_meses, cresc_planta_cm)
<BarContainer object of 5 artists>
plt$xlabel("Tempo (meses)")
Text(0.5, 0, 'Tempo (meses)')
plt$ylabel("Crescimento de uma planta (cm)")
Text(0, 0.5, 'Crescimento de uma planta (cm)')
plt$show()  # Mostra os dois gráficos lado a lado

Exemplo 5: Usando Pandas para Manipulação de Dados

pd <- import("pandas")

# Criando um DataFrame do Python a partir de um data.frame do R

df_r <- data.frame(
  nome = c("Alice", "Bob", "Carlos"),
  idade = c(25, 30, 35)
)

df_python <- pd$DataFrame(df_r)
print(df_python)
    nome idade
1  Alice    25
2    Bob    30
3 Carlos    35

Conclusão

Integrar Python no R abre um mundo de possibilidades, permitindo que você use bibliotecas como numpy, pandas, matplotlib, scikit-learn e muitas outras diretamente do R. Experimente esses exemplos e explore ainda mais!