R: Primeiros Passos
R como calculadora
Para começar, o RStudio pode ser usado como uma calculadora pois ele suporta os principais operadores matemáticos, como adição, subtração, multiplicação, divisão e exponenciação. Os operadores matemáticos no R são os mesmos que em outros programas matemáticos e estatísticos. Abaixo você pode visualizar os símbolos utilizados.
Adição +
Subtração –
Divisão /
Multiplicação *
Exponenciação ^
Abaixo você pode visualizar alguns exemplos da utilização do R como calculadora. Agora é sua vez! Copie e cole esse código em um script do R e execute essas operacionais. Adicionalmente, crie a suas próprias operações, para se familiarizar com o RStudio como uma calculadora.
8 + 7
8 - 7
2 / (3 + 5)
4 * ((2 ^ 5) / 3)
Operadores lógicos
Os operadores lógicos são usados para testar se algum elemento é igual, diferente, maior, etc. Por padrão, todos os testes lógicos no R retornam um resultado booleano, ou seja, Verdadeiro (TRUE) ou Falso (FALSE). No R, existem dois conjuntos de testes lógicos: (1) feitos por operadores e (2) feitos por funções.
Tipo de Teste | Símbolo |
Igualdade | == |
Diferença | != |
Maior que | > |
Menor que | < |
Maior ou igual | >= |
Menor ou igual | <= |
E | & |
OU | | |
NÃO | ! |
Teste no RStudio os seguintes comandos e veja se o R retornará com TRUE ou FALSE em cada situação.
Objetos
De uma forma muito simples, podemos compreender objetos como um local na memória do programa, no caso do R, que tem um valor qualquer. No R, esses valores podem ser um número, um vetor de números, uma função ou um banco de dados, por exemplo.
Podemos armazenar objetos no R com o operador <- (menor que, seguido de hífen) ou o operador = (igual). Basicamente, ele diz ao R para armazenar um valor em um objeto para podermos acessá-lo posteriormente. Podemos salvar o número 2 em um objeto x como exemplificado abaixo. Para visualizar o que o objeto armazena no script do RStudio, basta digitar o objeto e rodar (Ctrl + enter ou Run).
Adicionalmente, caso você deseje escrever algo no seu código apenas como comentário ou anotação, coloque o símbolo # antes do comentário, neste caso o RStudio não contará esse texto como uma operação e ele será ignorado quando rodar o código.
x <- 2 # Após criar o objeto, podemos usá-lo diretamente para realizar outras operações.
y = 2
3 -> z
x #rode para visualizar o que o objeto armazena
y
z
Se você criar um objeto com o mesmo nome do anterior, ele é substituído.
x <- 5
x
Usando parênteses entre seu comando, ele executa e ao mesmo tempo mostra o que foi armazenado.
(x <- 5)
Após salvar um objeto, você pode utilizá-lo para realizar operações.
x <- 5
x + 1
x / 2
y1 <- 3
y2 <- 7
y <- y1 ^ y2
y
Ao usar ponto e vírgula (;), você pode unir mais de uma operação seguida.
z <- 1 + 3; z <- z / 2; z
Para armazenar texto no R Studio, você pode utilizar o operador de atribuição (<-) e aspas simples ou duplas para delimitar o texto. Por exemplo:
frase <- "um texto"
frase
Nesse exemplo, criamos um objeto chamado “frase” e armazenamos nele o texto “um texto”. É importante lembrar que sempre que você quiser armazenar um texto ou character (chr), deverá usar aspas.
Erros comuns
Criar objetos com nomes que começam com números ou caracteres especiais podem gerar erro. Geralmente, nomes de funções em inglês como “if”, “else” etc. são reservados e não devem ser usados como nomes de objetos. Além disso, o R é sensível a letras maiúsculas e minúsculas, portanto, é importante tomar cuidado com a consistência do uso de letras maiúsculas e minúsculas nos nomes dos objetos. Se você atribui a um objeto a letra “A” maiúscula e depois que trabalhar com ela a chama de “a” minúscula, o R não vai entender e mostrará uma mensagem de erro.
2x <- 1
_x <- 1
&x <- 1
a <- 8
A #salve o objeto a e tente acessar o que está no objeto A
Recomendações
Cada pessoa tem um estilo e preferência de como organizar e trabalhar seus dados, como armazenar variáveis, ordem dos passos e como organizar o script. No entanto, algumas boas práticas podem ajudar e facilitar o código.
É recomendado colocar espaços entre objetos, operadores e chamadas a funções. Por exemplo: x <- 1 x + y + z
Fica melhor do que: x<-1 x+y+z
Quebrar as linhas para separar em bloco ou usar “soft-wrap R source files” (na barra de ferramentas do RStudio, em “Tools” > “Global Options…” > “Code”. Ajuda a ficar organizado e facilita a leitura do script.
Sempre que possível, crie objetos apenas com letras minúsculas e, se possível, nomes curtos e sem acentos para evitar erros de digitação.
Se precisar separar o nome de um objeto, use _ (underline), isso porque algumas funções usam ponto e pode gerar erro no código. Por exemplo: codigo_1 é melhor que codigo.1.
Funções no R
As funções no R são definidas como:
nome(argumento1, argumento2, …)
Exemplo: funcao runif() (para gerar valores aleatorios de uma distribuicao uniforme):
runif(n, min = 0, max = 1)
runif(12, 0, 2)
Ao nomear os argumentos da função, não é mais necessário se preocupar com a ordem em que aparecem:
runif(min = 1, max = 15, n = 5)
Em diversas funções, vários argumentos já possuem um valor pré-definido específicado. Neste caso os valores podem ser omitidos, entretando a função usurá os valores padrão para realizar a operação. Você pode verificar através do menu de ajuda (help), alguns valores que são pré-definidos pela função. Como exemplo, na função runif, o valor de max e min podem ser omitidos:
?runif() #Na sessão help, é possível verificar que caso não sejam definidos os valores, 0 e 1 serão atribuídos para min e max
runif(10)
Agora, utilize o resultado da função em outras funções, através da criação de um objeto:
a <- runif(n = 25, min = 50, max = 200)
a
mean(a) #mean)() é a função para calcular a média
sd(a) #sd() é a função para calcular o desvio padrão
plot(a) #plot() é a função para criar um gráfico de distribuição (de forma simples)
hist(a) #hist() é a função para criar um histograma (de forma simples)
boxplot(a)#boxplot() é a função para criar um gráfico boxplot (de forma simples)
sample(a,5) #sample() é a função para criar uma amostra "aleatória" de determinado n dos dados
Outros argumentos
Na função sample, que tem como estrutura básica: sample(x, size, replace = FALSE, prob = NULL), podemos ver outros argumentos. Veja o exemplo:
?sample
dados <- c(1,2,3,4,5) #criando um conjunto de 5 números e colocando em um objeto chamado dados
sample(dados, size=3, replace= TRUE,prob = NULL) #executando uma amostragem de n 3 a partir dos dados criados
x e size devem ser obrigatoriamente especificados. x corresponde ao conjunto de dados de onde serão amostrados e size corresponde ao tamanho da amostra desejada.
O argumento replace é lógico: TRUE (T) corresponde a verdadeiro ou FALSE (F) corresponde a falso. No exemplo, ao adicionar True, é permitido que seja feita a reamostragem de um mesmo valor mais de uma vez.
prob é um argumento onde você pode definir a probabilidade dos valores aparecerem, em nosso caso como não vamos definir uma probabilidade usamos o argumento NULL, que corresponde a um argumento vazio ou ausente.
Diretório
O diretório a partir do qual voce iniciou o R e o diretório de trabalho dessa sessão. Para verificar seu diretorio de trabalho, use o comando getwd().
getwd()
Para alterar o diretório de trabalho use a função setwd():
setwd("C:/Users/Administrator/MeuDiretorio") #troque o diretório pelo seu, atenção para a posição das barras, caso use a \, ela deve ser dupla: \\
getwd() #use a função getwd() para verficar se o diretório foi alterado
Modificar área de trabalho
Use ls() para ver o que tem na área de trabalho e a função rm() para remover algo:
ls()
rm(dados) #Removendo o conjundo de valores que criamos anteriormente
rm(list = ls()) #Remove tudo
Ajuda
Lugares para ajudar a desenvolver o script
Não é necessário decorar todos os códigos, ou como resolver cada etapa dos projetos. É importante saber onde procurar as informações necessárias para o que se deseja.
Para procurar ajuda, é possível utilizar a documentação do R (através da função help) ou em sites da internet, como o Stack Overflow. Muitas vezes, a sua dúvida já foi a de outra pessoa e é comum achar estas respostas em fóruns e sites já publicados. Conversar com um colega que já trabalha com isso também pode ajudar no desenvolvimento do projeto. Ao pesquisar em inglês você pode encontrar mais informações.
Para acessar a documentação no R, podemos usar interrogação e o nome da função ou pacote ou usar a função help(), e o próprio R vai gerar essa informação no quadrante inferior direito, na aba help.
help(mean)
?mean
example(mean) #Mostra um exemplo da função
RSiteSearch("mean") #Pesquisa sobre a palavra mean e mostra as informações disponíveis
help.start() #Um guia de introdução ao R e algumas informações sobre a linguagem
Mostrar os argumentos de uma função:
args(chisq.test)
Vetores são objetos que tem uma dimensão. Observe como podemos criar vetores com a função concatenar c().
c() #Use a função c(), concatenar, para adicionar mais de um item em um objeto
a1 <- c(1,2,3)
a2 = c(10,20,30)
a3 <- c(a1,a2)
print(a1) #Use a função print() para mostrar algum objeto
print(a2)
print(a3)
Exemplos: Funções rep() e seq()
Podemos usar a função rep() para criar uma repetição. De forma alternativa, podemos usar a função seq() para criar uma sequência.
rep(1:4, times= 2) #Repete os números de 1 ao 4, duas vezes. Observe que ao colocar : e um intervalo de números, o R entende que você está querendo uma sequência que vai do primeiro ao último número específicado, nesse caso do 1 ao 4. O argumento times=, diz quantas vezes a repetição deve ocorrer para todo o conjunto de números.
rep(1:4, each = 2) #Usando o argumento each= você específica que quer repetir cada valor duas vezes!
s1 = seq(from = 1, to = 20) #Sequência do 1 ao 20
s1
s2 = seq(from = 1, to = 20, by = 3) #Sequência do 1 ao 20 com intervalo de 3
s2
s3 = seq(1, 20, 2) #Com intervalo de 2
s3
Também é possível repetir um vetor categórico ou com caracteres:
animais <- c("sapo",'cachorro','baleia','urubu') #Criando o conjunto de dados
animais
animaisrep = rep(animais, times = 2) #Criando uma repetição
animaisrep
Colchetes [] exploram um componente do vetor
Também é possível repetir um vetor categórico ou com caracteres:
numeros <- c(10,20,30,40,50, 60)
numeros[5] #Somente o quinto item será mostrado!
numeros[2]
numeros[5] >= numeros[2] #Podemos utilizar isso para testar lógica, retornando um valor True ou False
numeros1 <- numeros > 20 #Utilizando dessa forma, só conseguimos obter as informações se é True ou False
numeros1
numeros2 <- numeros[numeros > 20] #Porém, ao adicionar dentro do colchetes, podemos criar um subconjunto dos dados de forma rápida e simples.
numeros2 #Somente os valores maiores que 20 foram selecionados
Exercícios
Armazene o resultado da equação 32+16^2-25^3 no objeto x:
Divida x por 345 e armazene em y:
Mostre o que está armazenado em y: