Você está na página 1de 6

tipos de objetos no R (verificar na literatura)

vetor
matriz
data frame

sqrt(num)
faz a raiz quadrada

c()
rbind()
cbind()
as.data.frame()

1:20
vai do número 1 ao 20

class(variavelNome)

rep(3, 4)
repetir o numero 3, 4 vezes

sum()
mean()
sd()

ls()
lista todas as variaveis que estão armazenadas na memoria

rm(variavel)
rm(list=ls())

save.image("meus.dados.RData")
salva tudo

save(minha.matriz, "meuarquivo.RData")
para salvar só a matriz no work directory

getwd()
diz o work directory

setwd("C:/birro")

-----------------------------------------------------------------------------------
------------------------------

o R trabalha com .txt e .csv, recomendado é o csv (=comma separated value)

meu.novo.arquivo1<-read.csv("arquivo.csv")
atenção, decimal no excel em pt/br é separado com "," e em ingles é "."
para não confundir os dois, o excel em portugues usa ";"
no caso do seu ser em portugues, precisa usar o comando read.csv2("arquivo.csv")
se o arquivo estiver em .txt o comando será read.table("arquivo.txt", dec=",")
nesse ultimo caso, se sua tabela já tiver cabeçalho, use read.table("arquivo.txt",
dec=",", header=TRUE)

read.csv2(file.choose())
você escolhe o arquivo direto do pc, mas o ideal é que vc ja tenha tudo dentro da
pasta do R

variáveis = colunas
observações = linhas

install.packages("CARS")
instalar pacotes

library("CARS")
abre o pacote para trabalhar

alguns pacotes contem dados para demonstrar as habilidades do programa


head(crabs)
traz apenas o início da planilha crass para ver qual é

?crabs
traz informações (conhecidas como "vignete") sobre a planilha crabs

str(crabs)
traz a estrutura de dados da planilha crabs, um resumão das variáveis, a classe das
variáveis, etc

tem 3 formas de chamar uma variável:


attach(crabs)
tudo que vc usar de comando após esse estará trabalhando considerando as variáveis
e objetos contidos em "crabs"
detach(crabs)

segunda forma
crabs$varName
resgata direto a variável q tu quer

terceira forma (alguns pacotes isso nao funcionará)


plot(FL~CW, data=crabs)
aqui, FL e CW são colunas de dados no dataframe crabs
FL(dependente)~(independente)CW, ou seja, FL sendo explicada por CW

criar função no R:
function(x, y){
sum<-sum(x)
n<-sum(y)
razao<-sum/n
return(razao)
}

para fazer regressão linear:


objeto <- lm(FL~CW, data = crabs)

pode pedir o resumo da regressão:


summary(objeto)

abline(objeto, lwd=2, col='blue')


lwd (line weight)
col (color)

subset(crabs, sp=="B")
cria um conjunto contendo as especies B da planilha craba
== significa LITERALMENTE "B"
minha.anova <- lm(CW~sp, data=crabs)
ANOVA (a anova tbm é um modelo linear, a diferença dela para a regressão linear é
que a variável explicativa é categórica e não continua)

summary(minha.anova)
vê o resumo da anova rodada

o R quando calcula a anova ele usa uma regressão, e nessa regressão ele faz um
teste de significancia prévio
da para pedir só os coeficientes da anova, com o comando:
minha.anova$coefficients

existe outro comando para anova


minha.anovaB<-aov(CW~sp, data=crabs)
summary(minha.anovaB)
esse comando aov tem como vantagem que te fornece direto a tabela resumo da anova
além disso, é possivel usar o comando TukeyHSD() para realizar um teste par a par
ou seja, se tivermos 3 espécies, ele vai comparar a diferença par-a-par entre elas
se rodarmos esse comando com o nosso exemplo, ele dará o mesmo valor da anova pq só
temos 2 variáveis

teste T no R:
t.test(CW~sp, data=crabs)

análise de variancia fatorial


minha.anova2<-lm(CW~sp*sex, data=crabs)
anova(minha.anova2) [comando para ver o resultado]
-é a situação onde pode se ter mais de uma variável explicativa
-geralmente são 2 explicativas pq mais q isso a interpretação fica complicada, mas
pode ser 3, 4 etc.
-o * entre sp e sex serve para ver quanto o CW é afetado pelas espécies, quanto é
afetado pelo sexo e quanto é afetado pelos dois. Esse * significa esses três.
-se ao invés do * fosse colocado um sinal de + o R calcularia só a influencia do
sexo e da espécie separadamente.

interaction.plot(crabs$sp, crabs$sex, crabs$CW)


esse comando serve para retornar a média de CW para espécies e para sexo no MESMO
gráfico.

análise de covariância
minha.covariancia<-lm(FL~CW*sp, data=crabs)
anova(minha.covariancia)
-é uma espécie de mistura da análise de variância com a regressão
-é análise de regressão pois tem a relação entre CW e FL, mas tem um outro fator
independente que são as espécies, uma covariável.
-a análise vai buscar justamente se a relação entre CW e FL é diferente entre as
espécies (ou sexos).

no R não dá para ver mais de um gráfico ao mesmo tempo, pois ele plota um em cima
do outro. Mas há um macete para isso:
par(mfrow=c(2,2))
faz com que a janela em que aparecem os gráficos do R seja dividido em 2 linhas e 2
colunas.

plot(minha.regressao)
-quando esse comando é aplicado após o último mencionado "par(mfrow)etc", plotará 4
graficos: Residuals vs Fitted, Normal Q-Q, Scale-Location e Residuals vs Leverage
-o primeiro grafico é o mais importante, nesse plot ele indica com número quais são
os outliers
-no gráfico Q-Q é baseado em quartis, então os residuals são padronizados pelos
quartis teóricos, a diagonal seria a distribuição perfeitamente normal
-o gráfico scale location...
-o gráfico residuals vs leverage...

agora vamos mudar o assunto, veremos uma análise onde as duas variáveis são
categóricas, para investigar se há uma associação entre elas

Qui-quadrado
-esse teste procura avaliar se duas variaveis categoricas são independentes, ou
seja, se uma delas afeta a outra. O exemplo abaixo consta do pacote MASS e envolve
os hábitoss de fumar de estudantes e o nível de atividade física dos mesmos.
-assim como o outro pacote tinha os dados CRABS, nesse tem o survey
>survey$Smoke
mostra toda a tabela
>head(survey$Smoke)
mostra as colunas
>head(survey$Exer)
mostra a coluna Exercise

tabela de contingencia, é a tabela qui-quadrado, o R calcula automaticamente


através do comando
>tabela.qui<-table(survey$Smoke, survey$Exer)
>chisq.test(tabela.qui)
-é preciso primeiro calcular a tabela de contingencia (comando 1) para depois rodar
o test chisq.test
-se o p for significativo significa que há relação entre as duas variáveis
-o R tem dois tipos mensagens, a de erro e a de warning. No exemplo acima, deu a
mensagem de warning, dizendo que o teste poderia não ser adequado ("chi-squared
approximation may be incorrect"). Ele diz que não é adequado, o qui-quadrado
geralmente é bom quando tem um N razoável e sem muita discrepância entre as
combinações. Quando há uma combinação com a frequência muito baixa (no exemplo,
fumante pesado que faz mto exercicio só há 1 individuo) acaba sendo inadequado.
-o teste mais adequado para esse caso é o teste exato de Fisher

>fisher.test(tabela.qui)
-também é calculado a partir de uma tabela de contingencia

PACOTES GRÁFICOS DO R
-o R já tem um pacote gráfico proprio que permite fazer gráficos até um nível
extremamente complexo
-na aula focaremos nos principais tipos e nas formas mais simples
>plot(FL~CW, data=crabs, pch=c(19), main="Comprimento do Lobo Frontal",
col=c(rep("red", 100), rep("blue", 100)))
-rep("red", 100) = repetir a cord vermelha para os 100 primeiros dados
-pch = tipo de caráter, nesse caso, bolinha preenchida de cor
>legend("bottomright", c("SpB", "SpO"), pch=19, col=c("red", "blue"))
-colocara legenda do lado direito inferior do grafico.

HISTOGRAMA
>attach(crabs)
-primeiro vc anexa através do comando attach
>hist(FL, data="crabs")
-agora vc calcula o histograma com esse comando
-cuidado, pq nesse comando ele chama o eixo Y de frequency, mas na verdade é um
numero absoluto. Então ao invés de frequency, o correto é o número de casos N.
>hist(FL, freq=F, data="crabs")
-calcula a frequencia relativa
-F = false
-agora o titulo do eixo Y é "density" e ele mostra a frequencia relativa dos dados

GRAFICO DE BARRAS
>mediaSpBMachos<-mean(crabs[1:50,7])
>mediaSpBFemeas<-mean(crabs[51:100,7])
>mediaSpOMachos<-mean(crabs[101:150,7])
>mediaSpOFemeas<-mean(crabs[151:200,7])
-calcula as medias de machos e femeas para a espécie B e especie O.
>mediasCW<-c(mediaSpBMachos, mediaSpBFemeas, mediaSpOMachos, mediaSpOFemeas)
-junta tudo em um único vetor, com 4 valores
>barplot(mediasCW)
-plota o gráfico de barra
-nesse caso, o grafico está sem eixo, sem legenda e etc. É uma versão mais crua,
para personaliza-lo veja o proximo comando
>barplot(mediasCW, main="Médias por espécie por sexo", names.arg=c("B Machos", "B
Fêmeas", "C Machos", "C Fêmeas"), ylab="CW", col="blue", las=1, yLim=c(0,50))
-las=1, é a orientação do texto na horizontal

SE quiser colocar o intervalo de confiança existem pacotes que fazem isso


automatico, mas vc pode calcular isso vc mesmo:

>sdSpBMachos<-sd(crabs[1:50,7])
>sdSpBFemeas<-sd(crabs[51:100,7])
>sdSpOMachos<-sd(crabs[101:150,7])
>sdSpOFemeas<-sd(crabs[151:200,7])
-calcula todos os desvios
>desviosCW<-c(sdSpBMachos, sdSpBFemeas, sdSpOMachos, sdSpOFemeas)
-junta todos em um vetor
>dados<-as.data.frame(cbind(mediasCW, desviosCW))
-junta tudo em uma planilha com as mediasCW e desviosCW
>attach(dados)
para anexar a nova planilha ao R para que os proprios comandos trabalhem em cima
dela
>meu.barplot<-barplot(mediasCW, names.arg=c("B Machos", "B Fêmeas", "O Machos", "O
Fêmeas"), yLim=c(0,50),
-esse é o plot
>arrows(meu.barplot, mediasCW+desviosCW, meu.barplot, mediasCW-desviosCW,
length=0.3, angle=90, code=3)
-esse é o intervalo de confiança

gráfico de pizzas
-é a mesma treta, esse eu não vou anotar para que eu possa configurar sozinho caso
algum dia eu use esse gráfico
-tem um mosaicplot() que é bem legal

NOTAS SOBRE OUTRAS LIBRARYS LEGAIS

lattice
é um ótimo pacote para fazer outros gráficos, alguns exemplos são o bwplot() e o
barchart()

ggplot2
o ggplot2 é um pacote que tem uma nomenclatura propria, as vezes até diferente do
R, exemplo é o qplot(), que é a mesma coisa do plot() do R, mas o ggplot já tem
esse comando nativo
>ggplot(crabs, aes(FL, CW, colour=sp)) +geom_point()
faz um gráfico lindo, separando as cores automaticamente por espécies e escolhendo
o carácter ao final do comando

Você também pode gostar