Índice
O Curso
Material de Apoio
Área dos Alunos
Visitantes
Forum
notaR
Área Restrita
Cursos Anteriores
IBUSP
Outras Insitutições
IBUSP
Outras Insitutições
Um dos primeiros hábitos que você deve adquirir para trabalhar com o R é não digitar os comandos diretamente no R, e sim em um arquivo texto, que chamamos de script ou código. Na interface gráfica de usuário (R-GUI) do Windows e do MAC há um editor de códigos, que você pode manter aberto, juntamente com a janela do R.
Usuário Linux
A instalação do R no LINUX não inclui uma interface como a do Windows ou do MAC, para que o usuário escolha a sua.
Há várias opções de editores e interfaces de desenvolvimento (IDEs), veja dicas e linques na seção de material de apoio.
Se você usa LINUX, pode seguir este tutorial com qualquer editor ou IDE.
A figura abaixo é uma captura de tela do R-GUI do Windows, mas no MAC o editor é similar, e você pode manter a mesma lógica. Deixe sempre uma janela de código aberta acima da janela do R:
Na figura acima há duas janelas com funcionamentos e objetivos muito diferente;
Para evitar confusão e perda de trabalho é importante digitar as informações que serão transmitidas ao R (linhas de código) no arquivo texto e ir passando esses comandos ao R. Tenha certeza que entendeu a diferença entre essas duas janelas, mais a frente iremos falar sobre a importância dessa distinção e de não se trabalhar diretamente na janela do R. É imprescindível aprender a se organizar dentro da lógica do ambiente de programação, com o risco de perder trabalho ou ficar completamente perdido entre as tarefas que executa.
Execute o R e abra o script com a opção do menu “Arquivo/Abrir script”:
Vá para a janela do script, coloque o cursor na primeira linha e tecle Ctrl-r
. O comando é enviado ao R. Faça o mesmo com as duas linhas seguintes.
Para Usuários de MAC
Para enviar comandos do editor de código do R-GUI para o R utilize Command+Enter ou Command+Return.
Veja o material https://cran.r-project.org/bin/macosx/RMacOSX-FAQ.html
Selecione as cinco primeiras linhas com o cursor e tecle Ctrl-r
. Os comandos são enviados ao R.
Agora modifique os dados, alterando a segunda e terceira linhas do script para:
area <- c(300, 350, 961, 295, 332, 47, 122, 11, 53, 2749) riqueza <- c(1, 7, 20, 7, 8, 4, 8, 3, 5, 23)
Salve o script com estas modificações.
Além de poder enviar as linhas de comando é possível submeter o script integralmente para o R. Você pode fazer isto de duas maneiras:
source("regressao.r")
OBS: Este comando só funcionará se o arquivo regressao.r estiver no diretório de trabalho, que é o nome técnico da pasta para onde o R está direcionado no seu computador. Caso não esteja, aparecerá uma mensagem de erro dizendo que não é possível abrir a conexão solicitada. A seguir veremos com podemos mudar o diretório de trabalho após abrir uma sessão do R.
Por padrão, o source
não mostra na tela os comandos executados nem seus resultados, mas todos os objetos são criados. Verifique os objetos criados por estes comandos no workspace do R digitando:
ls()
Se você quiser ver todos os comandos e resultados use:
source( "regressao.r", echo=TRUE, print.eval=TRUE )
Consulte a ajuda do comando source
para entender os argumentos echo
e print.eval
.
Agora vamos simular a perda dos objetos: saia do R, respondendo “NÃO” à pergunta “Salvar Área de Trabalho”3).
Abra o R de novo. Tudo perdido? Não! Com o código salvo (script) você pode executá-lo novamente, e recuperar todo o trabalho. Repita o procedimento novamente de abrir o arquivo de script e rodá-lo .
O editor de códigos do R-GUI no Windows e no Mac é bastante simples e costuma ser uma boa opção inicial para usuários deste sistema. Para esta disciplina ele é suficiente, mas logo que você se acostume com o R é bom buscar um editor ou ambiente integrado de programação com mais recursos.
No Linux não uma há uma GUI padrão para o R, e esta escolha já tem que ser feita no início.
Ou seja, mais cedo ou mais tarde, terá que avaliar as opções de editores de código ou ambientes de programação e escolher uma que lhe agrade.
Na página de material de apoio há uma seção com várias dicas sobre interfaces para o R para lhe ajudar.
Antes de começar um novo projeto de análise, crie um diretório para ele, com o menu “Arquivo/Novo/Pasta” do windows explorer.
Em seguida execute o R a partir do atalho na área de trabalho ou na barra de ferramentas.
Verifique qual é o diretório de trabalho que o R está usando, com o comando:
getwd()
E você verá que ao abrir o R desta maneira ele sempre começará com um mesmo diretório de trabalho, possivelmente em “Meus Documentos”, e.g.:
[1] "C:/Documents and Settings/Administrador/Meus documentos"
Para mudar o diretório de trabalho use:
setwd("C:/Documents and Settings/Administrador/Meus documentos/temp1")
IMPORTANTE: as barras devem ser no padrão Linux, ou seja, o inverso do usado em Windows.
Verifique se mudança funcionou, com um novo comando getwd
:
getwd()
Se seu diretório de trabalho é o desejado, verifique que está vazio, com o comando:
dir()
E também verifique se o workspace está vazio com
ls()
Agora baixe o arquivo letras.rdata para o diretório de trabalho, e carregue-o no workspace do R com o comando:
load("letras.rdata")
Verifique agora seu workspace, e salve-o:
ls() save.image()
Crie alguns outros objetos em seu workspace:
pares <- c(2,4,6,8) impares <- c(1,3,5,7,9) todos.os.numeros <- c(pares,impares)
Agora saia do R, tomando o cuidado de salvar de novo seu workspace.
Para trabalhar novamente no mesmo projeto, abra o diretório correspondente com o Windows Explorer e clique no arquivo .RData
:
IMPORTANTE: certifique-se de que o diretório está com a opção de exibir arquivos ocultos, ou você não verá o arquivo .RData
:
Verifique se todos os objetos da última seção estão em seu workspace:
ls()
Outra solução é criar um atalho para o projeto, indicando o diretório de trabalho na caixa de propriedades do atalho:
Você pode manter um atalho para cada projeto em andamento em sua área de trabalho.
Os três operadores de atribuição <
-
, =
e -
>
podem ser usados de várias maneiras para criar objetos. Por exemplo, estes comandos:
a <- 1 b <- a
São equivalentes a este:
b <- a <- 1
Ou a este:
a = 1 -> b
Experimente!
Várias funções retornam resultados mesmo sem que você forneça argumentos. Nestes casos, basta não escrever entre os parênteses. No caso da função ls
, por exemplo, você irá obter a lista de todos os objetos em sua área de trabalho:
A1 <- c(1,2,3) A2 <- c(10,20,30) b <- c(A1,A2) ls()
Consulte a página de ajuda da função ls:
help(ls)
Onde você verá a explicação para o argumento pattern
. Execute, então, este comando:
ls(pattern="A")
Para mudar os nomes de objetos e apagar os antigos, experimente:
a.1 <- A1 a.2 <- A2 ls() rm( list=c("A1","A2") ) ls()
Que tem o mesmo efeito de:
rm(list=ls(pattern="A"))
Ou de
rm(A1,A2)
Verifique!
Crie objetos com a datas do tri e tetracampeonatos mundiais do Brasil4):
copa.70 <- "21/06/70" copa.94 <- "17/07/94"
Qual a diferença em dias entre estas datas? A subtração retorna um erro (verifique):
copa.94 - copa.70
Isto acontece porque os objetos são caracteres, uma classe que obviamente não permite operações aritméticas:
class(copa.70) class(copa.94)
Mas o R tem uma classe para datas, que é Date
. Faça a coerção dos objetos para esta classe, verifique se a coerção foi bem sucedida, e repita a subtração:
copa.70 <- as.Date(copa.70,format="%d/%m/%y") copa.94 <- as.Date(copa.94,format="%d/%m/%y") class(copa.70) class(copa.94) copa.94 - copa.70
NOTA: o argumento format
da função as.Date
informa o formato em que está o conjunto de caracteres que deve ser transformado em data, no caso dia/mês/ano (%d/%m/%y
), todos com dois algarismos. Veja a ajuda da função para outros formatos.
Imagine uma escala de herbivoria com os níveis “alto”, “médio”, “baixo” e “nulo”. Vamos criar um objeto que representa o valor desta medida de herbivoria em uma amostra de 14 plantas:
herb <- c("A","M","M","A","A","M","M","B","A","A","A","A","B","A")
E então vamos criar um objeto da classe fator com estes valores:
herb.f <- factor(herb)
Usamos a função table
para contar o número de observações em cada nível do fator, cujo resultado atribuímos a um outro objeto. Os valores são exibidos se digitamos o nome do objeto.
(herb.t <- table(herb.f))
A função para gerar gráficos plot
pode ser aplicada diretamente ao objeto desta tabela:
plot(herb.t)
Há dois problemas aqui: na tabela e na figura os níveis não estão ordenados, e falta o nível de herbivoria nula. Isto acontece porque, ao criar uma variável de fator a partir de um vetor de valores, o R cria níveis apenas para os valores presentes, e ordena estes níveis alfabeticamente.
Isto pode ser mudado explicitando os níveis e sua ordem com o argumento levels
da função fator:
herb.f <- factor(herb, levels=c("N","B","M","A")) herb.t <- table(herb.f) herb.t plot(herb.t)
NOTA: há uma classe para fatores ordenados que poderia se aplicar aqui, mas seu uso tem implicações importantes nos resultados de algumas análises, que no momento não vêm ao caso. Mais informações a respeito na ajuda da função factor.
Pacotes são conjuntos de funções específicas do R, distribuídos em conjunto. No repositório do R estão armazenadas uma quantidade muito grande de pacotes que geralmente tem funções para um certo conjunto de tarefas associadas (p.ex: análise de padrões espaciais de pontos). Para usar um pacote é necessário entender a diferença entre baixar o pacote (download) do repositório e carregar o pacote na sua área de trabalho. Veja a apostila para mais detalhes se houver ainda dúvidas sobre como usar pacotes
Quais pacotes estão disponíveis na sua instalação de R? Você pode verificar isto com o comando:
library()
Outra maneira é iniciar a interface hipertexto de ajuda com:
help.start()
E escolher o link “Packages”, que você terá a lista do pacotes já instalados. Na interface hipertexto clique no nome de um dos pacotes. Você verá a lista de todos os objetos que este pacote contém.
Quais pacotes estão carregados? Uma maneira simples de descobrir é com o comando:
search()
Agora vamos gerar 15 números sorteados de uma distribuição normal, com média 1 e desvio-padrão=3, e guardar o resultado no onbjeto x1
:
x1 <- rnorm(n=15, mean=1, sd=3)
Para fazer um histograma deste valores, há a função hist
, do pacote graphics:
hist(x1)
Mas há também a função truehist
, do pacote MASS:
truehist(x1)
Este comando retornará uma mensagem de erro, que avisa que o R não encontrou o objeto truehist
. Para que isso não aconteça, é preciso carregar o pacote MASS, que já está instalado na distribuição básica do R:
search() library(MASS) search() truehist(x1)