Aqui você vê as diferenças entre duas revisões dessa página.
Ambos lados da revisão anterior Revisão anterior Próxima revisão | Revisão anterior | ||
cursos:ecor:02_tutoriais:tutorial1:start [2020/07/29 08:42] adalardo [O Ambiente de Programação] |
cursos:ecor:02_tutoriais:tutorial1:start [2020/07/30 12:33] (atual) adalardo [O Código é Tudo!] |
||
---|---|---|---|
Linha 372: | Linha 372: | ||
- | ===== O Código é Tudo! ===== | + | ===== O Código ===== |
Antes de continuar a introdução aos conceitos básicos do R, vamos enteder uma conduta importante em programação. Um dos primeiros hábitos que você deve adquirir para trabalhar com o R é **não digitar os comandos diretamente no console do R((Console é a interface de interação com o interpretador da linguagem: recebe o comando, envia ao interpretador e retorna a resposta. O que vinhamos usando no início desse tutorial é um interpretador online do R))**, e sim em um arquivo texto, que chamamos de **//script//** ou **//código//**. Essa intermediação entre o texto do comando e o interpretador, feita pelo script, é importante pois garante que o que está sendo direcionado ao R é armazenado no arquivo texto, que por fim, pode ser salvo e armazenado no computador, como um registro do procedimento executado e para ser utilizar novamente quando necessário. | Antes de continuar a introdução aos conceitos básicos do R, vamos enteder uma conduta importante em programação. Um dos primeiros hábitos que você deve adquirir para trabalhar com o R é **não digitar os comandos diretamente no console do R((Console é a interface de interação com o interpretador da linguagem: recebe o comando, envia ao interpretador e retorna a resposta. O que vinhamos usando no início desse tutorial é um interpretador online do R))**, e sim em um arquivo texto, que chamamos de **//script//** ou **//código//**. Essa intermediação entre o texto do comando e o interpretador, feita pelo script, é importante pois garante que o que está sendo direcionado ao R é armazenado no arquivo texto, que por fim, pode ser salvo e armazenado no computador, como um registro do procedimento executado e para ser utilizar novamente quando necessário. | ||
Linha 489: | Linha 489: | ||
- | ==== Rodando o script ==== | ||
- | 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: | ||
- | <WRAP center round box 80%> | ||
- | |||
- | * 1. Na janela do editor de código, selecione com o mouse ou marque todo o //script// com "Ctrl-a" e depois envie-o para o R com "Ctrl-r", como fizemos anteriormente | ||
- | * **OU** | ||
- | * 2. Na janela do R digite o comando: | ||
- | |||
- | </WRAP> | ||
- | |||
- | <code> | ||
- | source("tutorial01.r") | ||
- | </code> | ||
- | |||
- | **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: | ||
- | <code> | ||
- | ls() | ||
- | </code> | ||
- | |||
- | Se você quiser ver todos os comandos e resultados use: | ||
- | <code> | ||
- | source( "tutorial01.r", echo=TRUE, print.eval=TRUE ) | ||
- | </code> | ||
- | |||
- | 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"((não faça isto normalmente!!!, detalhes na [[cursos:ecor:03_apostila:02-entrada#Como o R Guarda os Dados?|apostila]])). | ||
- | |||
- | 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 Mapa do R ===== | ||
- | |||
- | Nosso exemplo de como se organizar no R aqui, será com o Windows. A lógica é a mesma para outros sistemas operacionais, com pequenas variações. | ||
- | |||
- | === Organize suas pastas === | ||
- | |||
- | Antes de começar um novo projeto de análise, crie uma pasta de trabalho ((diretório é o termo técnico)) para ele, com o menu //**Arquivo>Novo>Pasta**// do windows explorer. | ||
- | |||
- | <WRAP center round box 80%> | ||
- | |||
- | {{ :cursos:ecor:02_tutoriais:cria_pasta_windows.png?700 |}} | ||
- | </WRAP> | ||
- | |||
- | <WRAP center round box 80%> | ||
- | |||
- | {{ :cursos:ecor:02_tutoriais:tutorial1:nova_pasta_documentos.png?700 |crie um diretório de projeto}} | ||
- | |||
- | </WRAP> | ||
- | |||
- | Em seguida execute o R a partir do atalho na área de trabalho ou na barra de ferramentas. | ||
- | <WRAP center round box 80%> | ||
- | |||
- | {{:cursos:ecor:02_tutoriais:clique_atalho_r.png|}} {{:cursos:ecor:02_tutoriais:clique_barra_ferram-r.png|}} | ||
- | |||
- | </WRAP> | ||
- | |||
- | Verifique qual é o diretório de trabalho ((pasta)) que o R está vinculado, com o comando: | ||
- | <code> | ||
- | getwd() | ||
- | </code> | ||
- | |||
- | 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.: | ||
- | |||
- | <code> | ||
- | [1] "C:/Documents and Settings/Administrador/Meus documentos" | ||
- | </code> | ||
- | |||
- | Para mudar o diretório de trabalho use: | ||
- | <code> | ||
- | setwd("C:/Documents and Settings/Administrador/Meus documentos/temp1") | ||
- | </code> | ||
- | |||
- | <WRAP center round important 60%> | ||
- | |||
- | **IMPORTANTE:** as barras de endereço devem ser no padrão Linux, ou seja, barras simples e não dupla invertida como a utilizada em Windows. | ||
- | |||
- | </WRAP> | ||
- | |||
- | Verifique se mudança funcionou, com um novo comando ''getwd'': | ||
- | <code> | ||
- | getwd() | ||
- | </code> | ||
- | |||
- | Se seu diretório de trabalho é o desejado, verifique que está vazio, com os comandos: | ||
- | <code> | ||
- | dir() | ||
- | list.files() | ||
- | </code> | ||
- | E também verifique se o //workspace// do R está vazio com | ||
- | <code> | ||
- | ls() | ||
- | </code> | ||
- | |||
- | |||
- | Agora baixe o arquivo {{:cursos:ecor:02_tutoriais:letras.rdata|}} para o diretório de trabalho e carregue-o no //workspace// do R com o comando: | ||
- | <code> | ||
- | load("letras.rdata") | ||
- | </code> | ||
- | |||
- | Verifique agora seu workspace, e salve-o: | ||
- | <code> | ||
- | ls() | ||
- | save.image() | ||
- | </code> | ||
- | |||
- | Crie alguns outros objetos em seu //workspace//: | ||
- | <code> | ||
- | pares <- c(2,4,6,8) | ||
- | impares <- c(1,3,5,7,9) | ||
- | numeros <- c(pares,impares) | ||
- | </code> | ||
- | |||
- | 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'' : | ||
- | <WRAP center round box 80%> | ||
- | |||
- | {{ :cursos:ecor:02_tutoriais:diretorio_com_rdata.png?700 |clique no arquivo .RData}} | ||
- | </WRAP> | ||
- | |||
- | <WRAP center round box 80%> | ||
- | {{ :cursos:ecor:02_tutoriais:tutorial1:arquivos_gerados.png?700 |}} | ||
- | </WRAP> | ||
- | |||
- | <WRAP center round tip 100%> | ||
- | |||
- | **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'': | ||
- | </WRAP> | ||
- | |||
- | <WRAP center round box 80%> | ||
- | |||
- | {{ :cursos:ecor:02_tutoriais:ligar_mostrar_arquivos_ocultos_windows.png?700 |ligue exibição arquivos ocultos}} | ||
- | </WRAP> | ||
- | <WRAP center round box 80%> | ||
- | |||
- | {{ :cursos:ecor:02_tutoriais:tutorial1:arquivos_ocultos.png?700 |}} | ||
- | |||
- | |||
- | </WRAP> | ||
- | |||
- | Verifique se todos os objetos da última seção estão em seu //workspace//: | ||
- | |||
- | <code> | ||
- | ls() | ||
- | </code> | ||
- | |||
- | |||
- | ---- | ||
- | |||
- | Outra solução é criar um atalho para o projeto, indicando o diretório de trabalho na caixa de propriedades do atalho: | ||
- | <WRAP center round box 80%> | ||
- | |||
- | {{ :cursos:ecor:02_tutoriais:fazendo_atalho_projeto.png |atalho para o projeto}} | ||
- | |||
- | </WRAP> | ||
- | |||
- | Você pode manter um atalho para cada projeto em andamento em sua área de trabalho do windows. | ||
- | <WRAP center round box 60%> | ||
- | |||
- | //**__Para Usuários de LINUX__**// | ||
- | |||
- | Em LINUX não há estes problemas, pois basta executar o R na linha de comando (//shell//) a partir do diretório de trabalho (veja na [[cursos:ecor:03_apostila:02-entrada#iniciando_o_r|apostila]]). | ||
- | |||
- | Com o uso de editores de código fica ainda mais fácil, consulte o [[cursos:ecor:01_curso_atual:material:start#guia_para_o_ess|guia]] que há em nosso material de apoio. | ||
- | |||
- | </WRAP> | ||
- | |||
- | |||
- | ===== Criando Objetos ===== | ||
- | Os três [[cursos:ecor:03_apostila:02-entrada#Criação de Objetos: Atribuição|operadores de atribuição]] ''<''''-'', ''='' e ''-''''>'' podem ser usados de várias maneiras para criar objetos. Por exemplo, estes comandos: | ||
- | <code> | ||
- | a <- 1 | ||
- | b <- a | ||
- | </code> | ||
- | São equivalentes a este: | ||
- | <code> | ||
- | b <- a <- 1 | ||
- | </code> | ||
- | Ou a este: | ||
- | <code> | ||
- | a = 1 -> b | ||
- | </code> | ||
- | Experimente! | ||
- | |||
- | ===== Listando e Removendo Objetos ===== | ||
- | 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: | ||
- | <code> | ||
- | A1 <- c(1,2,3) | ||
- | A2 <- c(10,20,30) | ||
- | b <- c(A1,A2) | ||
- | ls() | ||
- | </code> | ||
- | Consulte a página de ajuda da função ls: | ||
- | <code> | ||
- | help(ls) | ||
- | </code> | ||
- | Onde você verá a explicação para o argumento ''pattern''. Execute, então, este comando: | ||
- | <code> | ||
- | ls(pattern="A") | ||
- | </code> | ||
- | Para mudar os nomes de objetos e apagar os antigos, experimente: | ||
- | <code> | ||
- | a.1 <- A1 | ||
- | a.2 <- A2 | ||
- | ls() | ||
- | rm( list=c("A1","A2") ) | ||
- | ls() | ||
- | </code> | ||
- | Que tem o mesmo efeito de: | ||
- | <code> | ||
- | rm(list=ls(pattern="A")) | ||
- | </code> | ||
- | Ou de | ||
- | <code> | ||
- | rm(A1,A2) | ||
- | </code> | ||
- | Verifique! | ||
- | |||
- | |||
- | ===== Carregando Pacotes ===== | ||
- | 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: | ||
- | <code> | ||
- | library() | ||
- | </code> | ||
- | |||
- | Outra maneira é iniciar a interface hipertexto de ajuda com: | ||
- | <code> | ||
- | help.start() | ||
- | </code> | ||
- | 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: | ||
- | <code> | ||
- | search() | ||
- | </code> | ||
- | |||
- | 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'': | ||
- | <code> | ||
- | x1 <- rnorm(n=15, mean=1, sd=3) | ||
- | </code> | ||
- | |||
- | Para fazer um histograma deste valores, há a função ''hist'', do pacote //graphics//: | ||
- | <code> | ||
- | hist(x1) | ||
- | </code> | ||
- | |||
- | Mas há também a função ''truehist'', do pacote //MASS//: | ||
- | <code> | ||
- | truehist(x1) | ||
- | </code> | ||
- | |||
- | 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: | ||
- | <code> | ||
- | search() | ||
- | library(MASS) | ||
- | search() | ||
- | truehist(x1) | ||
- | </code> | ||