início

Python e R: semelhanças e diferenças


Uma boa notícia: python e R são linguagens tão parecidas quanto português e espanhol, veja a comparação na tabela a seguir.

Se preferir, esse vídeo mostra as comparações que estão listadas nesta página:



função python R
criar variáveis a = 23 a = 23 a <- 23
ler dataframes pd.read_csv('restaurante1.csv') read.csv('restaurante1.csv')
ver tamanho do dataframe restaurante1.shape dim(restaurante1)
criar comentários # linha comentada # linha comentada
subselecionar dataframe por linhas restaurante1.query('receitas < 10000') restaurante1 %>% filter(receitas < 10000)
subselecionar dataframe por colunas restaurante1.receitas restaurante1$receitas
criar vetor a = np.array([3, 4, 5]) a <- c(3, 4, 5)
subselecionar vetor a[1:2] a[1:2]
regressão smf.ols('receita ~ despesas + empresa', data=dois_restaurantes).fit() lm('receita ~ despesas + empresa', data=dois_restaurantes)
histograma restaurante1.receitas.hist() ggplot(restaurante1, aes(receitas)) + geom_histogram()
valores booleanos True/False T/F, TRUE/FALSE
primeira posição de um vetor minha_lista[0] minha_lista[1]
não use ponto no nome de objetos novo_objeto = 23 novo_objeto = 23 novo.objeto = 23
potenciação 2**3 2**3 2^3
executar comandos shift+enter ctrl+enter
delimitação de funções e estruturas indentação chaves
interface JupyterLab JupyterLab RStudio
carregar pacotes import pandas as pd library(dplyr)
criar funções def soma(a, b):
    return a + b
soma = function(a, b){
return(a + b)
}
for loop for i in range(1, 6):
    print(i)
for(i in 1:5){
print(i)
}
while while i < 5:
    print(i)
    i += 1
while(i < 5){
print(i)
i = i + 1
}
if else if x >= 0:
    print('não negativo')
else:
    print('negativo')
if (x >= 0){
print('não negativo')
} else {
print('negativo')
}

Portanto, elas são muito semelhantes na criação de objetos, no trabalho com vetores e dataframes, na criação de gráficos e na análise de regressão a partir de fórmulas.

Uma primeira diferença entre as duas linguagens, já aparente nos exemplos acima, é o fato de que alguns comandos em python começam com siglas ("pd", "np" e "smf"). Elas são abreviaturas do nome dos pacotes onde estão essas funções (respectivamente, pandas, numpy e statsmodels). Essa é uma prática comum nos códigos de python e serve para evitar confusões entre funções de pacotes diferentes, mas com mesmo nome.

Além disso, essas abreviaturas permitem usar o autocomplete para descobrir comandos. Por exemplo, basta digitar "pd." e depois disso apertar a tecla TAB e você verá todos os comandos disponíveis no pacote pandas.


A figura abaixo compara o crescimento das duas linguagens (fonte):

crescimento das linguagens

Se quiser experimentar o python, clique aqui para abrir um notebook no Gooogle Colab com uma comparação entre as duas linguagens. Depois de clicar, faça o seguinte: