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 | ||
02_tutoriais:tutorial1:start [2023/07/06 17:13] 127.0.0.1 edição externa |
02_tutoriais:tutorial1:start [2023/08/11 19:08] (atual) |
||
---|---|---|---|
Linha 12: | Linha 12: | ||
<WRAP center round important 90%> | <WRAP center round important 90%> | ||
- | Antes de iniciar essa primeira aulas veja a videoaula sobre o esquema do curso em [[01_curso_atual:start|]] | + | Antes de iniciar essa primeira aulas veja a vídeo-aula sobre o esquema do curso em [[01_curso_atual:start|]] |
<WRAP center round box 80%> | <WRAP center round box 80%> | ||
- | Meu nome é Alexandre e costumo falar devagar nas videoaulas. Como elas estão em um canal do youtube é possível acelerar clicando em ''Settings'' (simbolo de engrenagem que aparece na barra inferior do video) e em seguida em ''Playback speed''. Procure a sua velocidade! | + | Meu nome é Alexandre e costumo falar devagar nas vídeo-aulas. Como elas estão em um canal do Youtube é possível acelerar clicando em ''Settings'' (símbolo de engrenagem que aparece na barra inferior do vídeo) e em seguida em ''Playback speed''. Procure a sua velocidade! |
</WRAP> | </WRAP> | ||
Linha 40: | Linha 40: | ||
===== ateliêR ===== | ===== ateliêR ===== | ||
- | Vamos usar uma interface web para rodar o R. Nos quadros **rdrr.io** é possível submeter linhas de código a um servidor que interpreta o código do R e retorna o resultado da operação em uma outra janela. Caso o servidor não esteja disponível, ou a conexão da internete não seja boa, é possível rodar as linhas de código em uma sessão do R no seu computador, apenas copiando e colando as linhas de código apresentadas antes dos quadros do **rdd.io**. | + | Vamos usar uma interface web para rodar o R. Nos quadros **rdrr.io** é possível submeter linhas de código a um servidor que interpreta o código do R e retorna o resultado da operação em uma outra janela. Caso o servidor não esteja disponível, ou a conexão da internet não seja boa, é possível rodar as linhas de código em uma sessão do R no seu computador, apenas copiando e colando as linhas de código apresentadas antes dos quadros do **rdd.io**. |
Linha 57: | Linha 57: | ||
<html> | <html> | ||
<iframe width='100%' height='400' src='https://rdrr.io/snippets/embed/?code=print(%22Hello%2C%20world!%22)' frameborder='0'></iframe> | <iframe width='100%' height='400' src='https://rdrr.io/snippets/embed/?code=print(%22Hello%2C%20world!%22)' frameborder='0'></iframe> | ||
- | |||
</html> | </html> | ||
- | |||
Os computeiros dizem que a primeira coisa que devemos fazer quando aprendemos uma linguagem computacional é fazê-la dizer [[https://en.wikipedia.org/wiki/%22Hello,_World!%22_program| Hello, world!]]. | Os computeiros dizem que a primeira coisa que devemos fazer quando aprendemos uma linguagem computacional é fazê-la dizer [[https://en.wikipedia.org/wiki/%22Hello,_World!%22_program| Hello, world!]]. | ||
Linha 82: | Linha 80: | ||
- | A mensagem ''Error: object 'Hello' not found'', significa que o R não encontrou o objeto com o nome ''Hello''. Nossa segunda definição: **caracteres que não estão entre aspas o R interpreta como sendo o nome de objetos**. No caso, o objeto com o nome ''Hello'' não foi encontrado! | + | A mensagem ''Error in print(Hello) : object 'Hello' not found'', significa que o R não encontrou o objeto com o nome ''Hello''. Nossa segunda definição: **caracteres que não estão entre aspas o R interpreta como sendo o nome de objetos**. No caso, o objeto com o nome ''Hello'' não foi encontrado! |
===== Atribuição ===== | ===== Atribuição ===== | ||
Linha 102: | Linha 100: | ||
Nas regras de boas práticas de estilo da linguagem, em geral, se diz que deve-se usar a primeira forma, que a segunda é aceitável, mas que não devemos usar a terceira! | Nas regras de boas práticas de estilo da linguagem, em geral, se diz que deve-se usar a primeira forma, que a segunda é aceitável, mas que não devemos usar a terceira! | ||
+ | |||
+ | Outra boa prática de estilo da linguagem é, uma vez escolhida a forma a ser usada, usar sempre a mesma forma ao longo de seus **//scripts//**. Iremos definir o que é um **//script//** no item [[http://ecor.ib.usp.br/doku.php?id=02_tutoriais:tutorial1:start#o_codigo|'O Código']] desse tutorial. | ||
Vamos criar nosso primeiro objeto no R: | Vamos criar nosso primeiro objeto no R: | ||
Linha 136: | Linha 136: | ||
Agora temos novamente o retorno de ''"Hello, world!"'', mas dessa vez a frase vem do objeto ''Hello''. Quando chamamos um objeto que existe no R ele nos retorna o que está armazenado nele. | Agora temos novamente o retorno de ''"Hello, world!"'', mas dessa vez a frase vem do objeto ''Hello''. Quando chamamos um objeto que existe no R ele nos retorna o que está armazenado nele. | ||
- | ==== Classe dos objetos ==== | + | ===== Classes de objetos ===== |
Linha 154: | Linha 154: | ||
- | ==== Classe Function ==== | + | ==== A classe 'function' ==== |
- | No nosso primeiro código do R havia um objeto chamado ''print''. Vamos visualizar a classe a que pertence esse objeto: | + | No nosso primeiro código do R, havia um objeto chamado ''print''. Vamos visualizar a classe a que pertence esse objeto: |
<code rsplus> | <code rsplus> | ||
Linha 167: | Linha 167: | ||
- | O R nos diz que esse objeto é da classe função. Os objeto da classe ''function'' em geral estão associados a uma documentação que nos ajudam a entender como usar essa ferramenta. Para acessar a documentação no R, utilizamos outra ferramenta que é a função ''help''((O caracter ''?'' funciona como um atalho para essa função)). | + | O R nos diz que esse objeto é da classe função. Os objetos da classe ''function'' em geral estão associados a uma documentação que nos ajudam a entender como usar essa ferramenta. Para acessar a documentação no R, utilizamos outra ferramenta que é a função ''help''((O caracter ''?'' funciona como um atalho para essa função)). |
Linha 195: | Linha 195: | ||
</html> | </html> | ||
- | É muito importante diferenciar o objeto que contém o código, que é a função, do procedimento ao executar essa função. A diferença entre um e outro está em um detalhe pequeno que são os parênteses <wrap hi>(...)</wrap> que acompanham o nome da função. O nome da função acompanhado dos parênteses fazem com que o procedimento associado a esse objeto seja executado. Caso não seja acompanhada dos parênteses, o objeto da classe função irá retornar aquilo que está atribuído a ele: __o texto de código que a função contém__. | + | É muito importante diferenciar o objeto que contém o código da função do procedimento ao executar essa função. A diferença entre um e outro está em um detalhe pequeno que são os parênteses <wrap hi>(...)</wrap> que acompanham o nome da função. O nome da função acompanhado dos parênteses faz com que o procedimento associado a esse objeto seja executado. Caso não seja acompanhada dos parênteses, o objeto da classe função irá retornar aquilo que está atribuído a ele: __o texto de código que a função contém__. |
- | ==== Argumentos ==== | + | ==== Argumentos das funções ==== |
Linha 213: | Linha 213: | ||
</html> | </html> | ||
- | Para explicitar que estamos manipulando objetos, podemos fazer o procedimento em duas etapas, primeiro atribuíndo o valor ''1,23456789'' a um objeto e depois solicitando para que ele seja mostrado na tela com apenas 3 digitos. | + | Para explicitar que estamos manipulando objetos, podemos fazer o procedimento em duas etapas, primeiro atribuindo o valor ''1,23456789'' a um objeto e depois solicitando para que ele seja mostrado na tela com apenas 3 dígitos. |
Linha 222: | Linha 222: | ||
</code> | </code> | ||
- | |||
<html> | <html> | ||
Linha 231: | Linha 230: | ||
**O padrão decimal do R** | **O padrão decimal do R** | ||
\\ | \\ | ||
- | Note que o R utiliza o símbolo de '' . '' para indicar o decimal no padrão de números em Inglês. Já em Português, o padrão é utilizar a vírgula como indicação de decimais, o que não funciona no R. | + | Note que o R utiliza o símbolo de ''.'' para indicar o decimal no padrão de números em Inglês. O padrão em Português, que é o uso de '','' como indicador, não funciona no R! |
</WRAP> | </WRAP> | ||
Linha 243: | Linha 242: | ||
</code> | </code> | ||
- | |||
Linha 251: | Linha 249: | ||
</html> | </html> | ||
- | Porque o objeto ''numero'' é manipulado diferentemente do objeto ''palavra''? Por que são objetos de classes diferentes e a função ''print'' reconhece essa diferença e trata eles de forma diferente. Quanto manipula números o argumento ''digits'' faz sentido, quando o objeto é da classe ''characters'' esse argumento é desprezado. Aqui tem um conceito avançado da linguagem, a função ''print'' chama um método que executa diferentes procedimentos dependendo da classe do objeto que ela manipula. Podemos dizer que o método é um conjunto de funções. | + | ==== As classes 'numeric' e 'character' ==== |
- | Já vimos anteriormente que para acessar a classe a que um objeto pertence podemos usar a função ''class'': | + | |
+ | |||
+ | Porque o objeto ''numero'' é manipulado diferentemente do objeto ''palavra''? Por que são objetos de classes diferentes e a função ''print'' reconhece essa diferença e trata eles de forma diferente. Quanto a função manipula números (i.e. classe ''numeric'') o argumento ''digits'' faz sentido. Quando o objeto é da classe ''character'' esse argumento é desprezado. Aqui tem um conceito avançado da linguagem: a função ''print'' executa diferentes procedimentos dependendo da classe do objeto que ela manipula. | ||
+ | |||
+ | Já vimos anteriormente que para acessar a classe a que um objeto pertence podemos usar a função ''class'': | ||
<code rsplus> | <code rsplus> | ||
Linha 284: | Linha 285: | ||
**__Cadê o nome do argumento?__** | **__Cadê o nome do argumento?__** | ||
- | Note que o código acima não tem o nome dos argumentos. Estamos usando uma das regras dos argumentos no R que é a posição. Caso o nome não seja dado, o R usa a posição para atribuir o valor ao argumento. É possível usar ambas regras, posição e nome, o que é bastante comum. Uma outra regra é a do padrão único do nome simplificado. Por exemplo, o ''dig = 3'' será reconhecido como ''digits = 3 '' desde que não haja nenhum outro argumento que comece com ''dig'' no nome. Como sabemos a posição e nome dos argumentos? No ''help''. Consulte sempre a documentação! Quase todas as funções que aparecem nos códigos do wiki estão conectadas a sua documentação por hiperlink ((alguns links não funcionam, mas a maior parte sim)), use e abuse! | + | Note que o código acima não tem o nome dos argumentos. Estamos usando uma das regras dos argumentos no R que é a posição. Caso o nome não seja dado, o R usa a posição para atribuir o valor ao argumento. É possível usar ambas regras, posição e nome, o que é bastante comum. Uma outra regra é a do padrão único do nome simplificado. Por exemplo, o ''dig = 3'' será reconhecido como ''digits = 3 '' desde que não haja nenhum outro argumento que comece com ''dig'' no nome. Como sabemos a posição e nome dos argumentos? No ''help''. Consulte sempre a documentação! Quase todas as funções que aparecem nos códigos do wiki estão conectadas a sua documentação por um hiperlink. Portanto, use e abuse! |
</WRAP> | </WRAP> | ||
Linha 297: | Linha 298: | ||
+ | ==== Sintaxe básica ==== | ||
- | <WRAP center round box 100%> | ||
A sintaxe básica do R pode ser definida como: | A sintaxe básica do R pode ser definida como: | ||
Linha 307: | Linha 308: | ||
</code> | </code> | ||
- | Podemos ler o comando acima como sendo: "utilize a ferramenta ''tool'' para manipular o objeto '' x '' tendo o argumento ''arg2'' com o atributo ''y'' e a opção ''arq3'' como ''z''. O resultado dessa manipulação é armazenado no objeto de nome ''object''. Note que o R, nesse caso, não devolveria nada na tela, pois o resultado da manipulação é atribuído a um objeto ((para atribuir o resultado a um objeto e ao mesmo tempo mostrar na tela, utilize parênteses iniciando e fechando a linha de comando)). | + | Podemos ler o comando acima como sendo: "utilize a ferramenta ''tool'' para manipular o objeto '' x '' tendo o argumento ''arg2'' com o atributo ''y'' e a opção ''arg3'' como ''z''. O resultado dessa manipulação é armazenado no objeto de nome ''object''. Note que o R, nesse caso, não devolveria nada na tela, pois o resultado da manipulação é atribuído a um objeto ((para atribuir o resultado a um objeto e ao mesmo tempo mostrar na tela, utilize parênteses iniciando e fechando a linha de comando)). |
- | </WRAP> | ||
===== Estrutura e tipos de dados ===== | ===== Estrutura e tipos de dados ===== | ||
Linha 315: | Linha 316: | ||
Até aqui vimos dois tipos de informação que podem ser manipuladas no R: caracteres e números. | Até aqui vimos dois tipos de informação que podem ser manipuladas no R: caracteres e números. | ||
Os números, por sua vez, podem ser de dois tipos: números com decimais (''numeric'') e inteiros (''integer''). Essa distinção é importante para a maneira como o R armazena essa informação na memória do computador, de resto elas funcionam como números racionais na matemática clássica. | Os números, por sua vez, podem ser de dois tipos: números com decimais (''numeric'') e inteiros (''integer''). Essa distinção é importante para a maneira como o R armazena essa informação na memória do computador, de resto elas funcionam como números racionais na matemática clássica. | ||
- | No capítulo seguinte vamos tratar das funções matemáticas mais a fundo. Aqui vamos apenas ver as bases conceituais dos tipos de dados básicos e qual a estrutura básica de armazenamento em objetos. As operações da algebra básicas no R usam os mesmos simbolos que na matemática tradicional: ''+'', ''-'', ''/'' e ''*''. | + | No capítulo seguinte vamos tratar das funções matemáticas mais a fundo. Aqui vamos apenas ver as bases conceituais dos tipos de dados básicos e qual a estrutura básica de armazenamento em objetos. As operações da álgebra básicas no R usam os mesmos símbolos que na matemática tradicional: ''+'', ''-'', ''/'' e ''*''. |
Linha 333: | Linha 334: | ||
</html> | </html> | ||
- | Como vimos na sessão anterior podemos atribuir valores numéricos a um objeto. Depois disso, podemos manipular os valores indiretamente por intermédio do objeto. | + | Como vimos na seção anterior podemos atribuir valores numéricos a um objeto. Depois disso, podemos manipular os valores indiretamente por intermédio do objeto. |
<code rsplus> | <code rsplus> | ||
Linha 349: | Linha 350: | ||
</html> | </html> | ||
- | Atribuímos o valor ''10'' ao objeto ''dez'' e depois manipulamos o objeto ''dez''. Isso não parece ser uma vantagem. Estamos trocando dois dígitos, o valor ''10'', por um objeto que contem 3 letras, o ''dez''. A vantagem começa quando atribuímos o resultado de operações a um outro objeto. | + | Atribuímos o valor ''10'' ao objeto ''dez'' e depois manipulamos o objeto ''dez''. Isso não parece ser uma vantagem. Estamos trocando dois dígitos, o valor ''10'', por um objeto que contém 3 letras, o ''dez''. A vantagem começa quando atribuímos o resultado de operações a um outro objeto. |
<code rsplus> | <code rsplus> | ||
Linha 367: | Linha 368: | ||
- | Ficaria ainda melhor se pudessemos operar mais de um valor de uma vez. Como armazenar mais de um valor em um objeto? Usamos a função ''c'' que significa ''c''oncatenar ou ''c''ombinar. Os elementos combinados são a estrutura básica de dados no R, que é o objecto da classe ''vector''. Esse é o elemento básico dos objetos no R. Mesmo que o objeto só tenha um elemento, trata-se de um vetor com uma posição. | + | Ficaria ainda melhor se pudéssemos operar mais de um valor de uma vez. Como armazenar mais de um valor em um objeto? Usamos a função ''c'' que significa ''c''oncatenar ou ''c''ombinar. Os elementos combinados são a estrutura básica de dados no R, que é o objeto da classe ''vector''. Esse é o elemento básico dos objetos no R. Mesmo que o objeto só tenha um elemento, trata-se de um vetor com comprimento igual a um. |
Linha 387: | Linha 388: | ||
Note que, antes de iniciar a apresentação dos valores que estão no vetor ''contadez'' o R apresenta o valor 1 entre colchetes ''[1]''. Caso o nosso vetor fosse longo e tivesse que ser apresentado em várias linhas, outros valores em colchetes iriam iniciar essa outras linhas de apresentação dos dados. Esses valores representam a indexação do elemento que inicia a linha de apresentação do conteúdo do vetor. Ou seja, o elemento na posição 1, no nosso caso é o valor ''1''. | Note que, antes de iniciar a apresentação dos valores que estão no vetor ''contadez'' o R apresenta o valor 1 entre colchetes ''[1]''. Caso o nosso vetor fosse longo e tivesse que ser apresentado em várias linhas, outros valores em colchetes iriam iniciar essa outras linhas de apresentação dos dados. Esses valores representam a indexação do elemento que inicia a linha de apresentação do conteúdo do vetor. Ou seja, o elemento na posição 1, no nosso caso é o valor ''1''. | ||
- | Vamos inverter esse vetor, em seguida combiná-lo com o vector anterior! | + | Vamos inverter esse vetor, em seguida combiná-lo com o vetor anterior! |
Linha 406: | Linha 407: | ||
</html> | </html> | ||
- | Agora, como fazemos para acessar algum elemento dentro desse vetor? Para isso usamos a indexação de posição. | + | Agora, como fazemos para acessar elementos específicos dentro desse vetor? Para isso usamos a indexação de posição. |
**//Por padrão no R o primeiro elemento de um vetor está na posição 1//**. | **//Por padrão no R o primeiro elemento de um vetor está na posição 1//**. | ||
- | Essa frase pouco informativa é uma detalhe importante. Em muitas linguagem computacionais, diria até que a maioria das linguagens mais populares, a indexação começar pela posição definida como ''0'' (zero)! Mais a frente vamos usar outras indexações de vetores e de outras classes de objetos de dados. Abaixo temos alguns exemplos, simples para vetores: | + | Essa frase pouco informativa é um detalhe importante. Em muitas linguagens computacionais, diria até que a maioria das linguagens mais populares, a indexação começa pela posição definida como ''0'' (zero)! Mais a frente vamos usar outras indexações de vetores e de outras classes de objetos de dados. Abaixo temos alguns exemplos, simples para vetores: |
Linha 426: | Linha 427: | ||
- | ==== Classes Date ==== | + | ==== A classe 'Date' ==== |
Crie objetos com as datas do tri e tetracampeonatos mundiais do Brasil((fonte: [[http://pt.fifa.com/worldcup/archive/|FIFA]] )): | Crie objetos com as datas do tri e tetracampeonatos mundiais do Brasil((fonte: [[http://pt.fifa.com/worldcup/archive/|FIFA]] )): | ||
Linha 433: | Linha 434: | ||
copa94 <- "17/07/94" | copa94 <- "17/07/94" | ||
</code> | </code> | ||
- | Qual a diferença em dias entre estas datas? A subtração retorna um erro (verifique): | + | Qual a diferença em dias entre essas datas? A subtração retorna um erro (verifique): |
<code rsplus> | <code rsplus> | ||
copa94 - copa70 | copa94 - copa70 | ||
Linha 444: | Linha 445: | ||
- | Isto acontece porque os objetos são caracteres, uma classe que obviamente não permite operações aritméticas. Já sabemos verificar a classe de um objeto, digitando o código: | + | Esse erro acontece porque os objetos são caracteres, uma classe que obviamente não permite operações aritméticas. Já sabemos verificar a classe de um objeto, digitando o código: |
<code rsplus> | <code rsplus> | ||
Linha 472: | Linha 473: | ||
- | Inclua na janela do R online abaixo o código que gera os objetos ''copa70'' e ''cop94'', em seguida verifique a classe a que pertencem, e depois faça a a transformação para a classe ''Date'' e a subtração entre eles. | + | Inclua na janela do R online abaixo o código que gera os objetos ''copa70'' e ''cop94'', em seguida verifique a classe a que pertencem, e depois faça a transformação para a classe ''Date'' e a subtração entre eles. |
<WRAP center round tip 80%> | <WRAP center round tip 80%> | ||
Linha 486: | Linha 487: | ||
- | ==== Dado Lógico ==== | + | ==== A classe 'logical' ==== |
Até o momento, vimos algumas naturezas de informação que podemos armazenar e manipular no R: caracteres, datas e números. Uma outra natureza importante de dado básico no R é chamada de lógica. | Até o momento, vimos algumas naturezas de informação que podemos armazenar e manipular no R: caracteres, datas e números. Uma outra natureza importante de dado básico no R é chamada de lógica. | ||
Linha 504: | Linha 505: | ||
</html> | </html> | ||
- | Além disso, o R retorna ''TRUE'' ou ''FALSE'' quando fazemos alguma procedimento utilizando operadores lógicos. | + | Além disso, o R retorna ''TRUE'' ou ''FALSE'' quando fazemos algum procedimento utilizando operadores lógicos. |
<WRAP center round box 60%> | <WRAP center round box 60%> | ||
Linha 528: | Linha 529: | ||
numero < 1 | numero < 1 | ||
numero > 1 | numero > 1 | ||
- | ## abaixo primeiro imprime o valor e depois faz o teste logico | + | ## abaixo primeiro imprime o valor e depois faz o teste lógico |
print(numero, digits = 4) == numero | print(numero, digits = 4) == numero | ||
round(numero, digits = 4) == numero | round(numero, digits = 4) == numero | ||
Linha 563: | Linha 564: | ||
- | ==== Classe Fator ==== | + | ==== A classe 'factor' ==== |
+ | |||
+ | Para a melhor compreender essa classe de objetos no R, o Prof. Alexandre preparou uma vídeo-aula específica, disponível abaixo. | ||
<WRAP center round box 60%> | <WRAP center round box 60%> | ||
Linha 588: | Linha 592: | ||
</code> | </code> | ||
- | ** Rode o código abaixo e avalie o que está sendo produzido em cada linha de comando **. Caso fique com dúvidas a primeira coisa a fazer é consultar o ''help()'' da função. O quadro onde temos o código abaixo, pode ser editado e pode rodar novamente com outro código. Fique a vontade para explorar a documentação das funções que estamos apresentando. | + | ** Rode o código abaixo e avalie o que está sendo produzido em cada linha de comando **. Caso fique com dúvidas a primeira coisa a fazer é consultar o ''help()'' da função. O quadro onde temos o código abaixo, pode ser editado e pode rodar novamente com outro código. Fique à vontade para explorar a documentação das funções que estamos apresentando. |
<html> | <html> | ||
Linha 603: | Linha 607: | ||
</code> | </code> | ||
- | Modifique o código da janela acima, incluíndo o argumento ''levels'' na função ''factor'' e rode novamente o código todo na janela abai | + | Modifique o código da janela acima, incluindo o argumento ''levels'' na função ''factor'' e rode novamente o código todo na janela abaixo. |
<html> | <html> | ||
Linha 611: | Linha 615: | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
- | **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 [[http://finzi.psych.upenn.edu/R/library/base/html/factor.html|factor]]. | + | **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: ''help(factor)''. |
</WRAP> | </WRAP> | ||
Linha 617: | Linha 621: | ||
===== O Código ===== | ===== 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 entender 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 vínhamos 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. Esse arquivo pode ser salvo, como um registro do procedimento executado, mas principalmente para que ele possa ser utilizado e melhorado sempre que necessário. |
<WRAP center round box 90%> | <WRAP center round box 90%> | ||
Linha 623: | Linha 627: | ||
**__Reprodutibilidade do procedimento__** | **__Reprodutibilidade do procedimento__** | ||
- | Quando trabalhamos em uma planilha eletrônica, a partir de dados brutos, podemos salvar os gráficos ou os dados modificados após manipulados. Entretanto, o procedimento não é salvo. Se precisar fazer o mesmo procedimento para outro conjunto de dados precisará lembrar todas as etapas e a ordem em que foram executadas. Em programação, o script é nosso roteiro do procedimento que foi executado. Para repetir um procedimento é só executar novamente o script. Isso incrementa muito a reprodutibilidade do nosso procedimento, uma qualidade muito importante para a ciência de um modo geral, mas também para o dia a dia. Por isso, a partir desse momento no curso, iremos abondonar a interface do R online que estavamos usando para rodar o código e vamos, a patir de agora, produzir script ou códigos! | + | Quando trabalhamos em uma planilha eletrônica, a partir de dados brutos, podemos salvar os gráficos ou os dados modificados após manipulados. Entretanto, o procedimento não é salvo. Se precisar fazer o mesmo procedimento para outro conjunto de dados precisará lembrar todas as etapas e a ordem em que foram executadas. Em programação, o script é nosso roteiro do procedimento que foi executado. Para repetir um procedimento é só executar novamente o script. Isso incrementa muito a reprodutibilidade do nosso procedimento, uma qualidade muito importante para a ciência de um modo geral. Por isso, deste ponto do curso em diante, iremos abandonar a interface do R online que estávamos usando até então para trabalhar através de scripts ou códigos! |
</WRAP> | </WRAP> | ||
Linha 632: | Linha 636: | ||
Um editor de código nada mais é do que um editor de texto puro como o bloco de notas do Windows. Algumas funcionalidades são bem vindas, como por exemplo, enviar a linha de código diretamente para o console do R sem a necessidade de copiar e colar. | Um editor de código nada mais é do que um editor de texto puro como o bloco de notas do Windows. Algumas funcionalidades são bem vindas, como por exemplo, enviar a linha de código diretamente para o console do R sem a necessidade de copiar e colar. | ||
- | A instalação básica do R contém uma interface gráfica de usuário (R-GUI) simples, tanto no Windows como no IOS, que acompanha um editor de códigos. | + | A instalação básica do R contém uma interface gráfica de usuário (R-GUI) simples, tanto no Windows como no IOS/Mac, que acompanha um editor de códigos. |
<WRAP center round box 80%> | <WRAP center round box 80%> | ||
- | 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. | + | O editor de códigos do R-GUI no Windows ou Mac é bastante simples e costuma ser uma boa opção para usuários iniciantes do R. Para esta disciplina esse editor é suficiente. |
- | No Linux não uma há uma [[http://en.wikipedia.org/wiki/GUI|GUI]] padrão para o R, e esta escolha deve ser feita logo no início. | + | No Linux não há uma [[http://en.wikipedia.org/wiki/GUI|GUI]] padrão para o R, e esta escolha deve ser feita logo no início. |
Na página de material de apoio há uma seção com várias [[http://ecologia.ib.usp.br/bie5782/doku.php?id=01_curso_atual:material:start#interfaces_para_o_r|dicas sobre interfaces para o R]] para lhe ajudar. | Na página de material de apoio há uma seção com várias [[http://ecologia.ib.usp.br/bie5782/doku.php?id=01_curso_atual:material:start#interfaces_para_o_r|dicas sobre interfaces para o R]] para lhe ajudar. | ||
Linha 663: | Linha 667: | ||
- a janela na parte inferior é o console do R, ou seja o programa propriamente dito. Essa janela recebe os comandos de código e envia ao interpretador do R, que por sua vez, retorna o resultado final do processamento((quando a tarefa solicitada é a representação de um gráfico, uma nova janela é aberta, um dispositivo gráfico. )). | - a janela na parte inferior é o console do R, ou seja o programa propriamente dito. Essa janela recebe os comandos de código e envia ao interpretador do R, que por sua vez, retorna o resultado final do processamento((quando a tarefa solicitada é a representação de um gráfico, uma nova janela é aberta, um dispositivo gráfico. )). | ||
- | 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. Uma boa prática também é comentar as linhas de código para que outras pessoas, ou mesmo a pessoa que criou o código, possam entender ou lembrar o que o código executa. | + | 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 enviando esses comandos ao console R. Uma boa prática também é comentar as linhas de código para que outras pessoas, ou mesmo a pessoa que criou o código, possam entender ou lembrar o que cada parte ou linha do código executa. |
- | É 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. | + | É imprescindível aprender a se organizar dentro do ambiente de programação, para evitar o risco de perder trabalho ou ficar perdido entre as tarefas executadas. |
| | ||
</WRAP> | </WRAP> | ||
==== O primeiro Script ==== | ==== O primeiro Script ==== | ||
+ | |||
+ | O exercício final deste tutorial é produzir um script que você terá de salvar e submeter para avaliação. Assim, siga atentamente as instruções nos pontos abaixo. | ||
Linha 702: | Linha 708: | ||
* Retire a redundância na atribuição dos abjetos, mas cuidado com objetos que são sobrescritos, veja o ''copa70'', por exemplo; | * Retire a redundância na atribuição dos abjetos, mas cuidado com objetos que são sobrescritos, veja o ''copa70'', por exemplo; | ||
* Ao final selecione todas as linhas do script, inclusive comentários e e tecle ''Ctrl-r'' para submeter tudo ao interpretador do R; | * Ao final selecione todas as linhas do script, inclusive comentários e e tecle ''Ctrl-r'' para submeter tudo ao interpretador do R; | ||
- | * Garanta que não há mesagens de erro ao longo do processamento do script. | + | * Garanta que não há mensagens de erro ao longo do processamento do script. |
<WRAP center round box 80%> | <WRAP center round box 80%> | ||
Linha 712: | Linha 718: | ||
**__Comentários no código__** | **__Comentários no código__** | ||
- | Para fazer comentários no código, usamos o simbolo de '' # ''. | + | Para fazer comentários no código, usamos o símbolo de ''#''. |
- | Qualquer conteúdo na linha de comando depois do '' # '' não é interpretado pelo R. Utilizamos os comentários, em geral, para tornar o código autoexplicativo. | + | Qualquer conteúdo na linha de comando depois do ''#'' não é interpretado pelo R. Utilizamos os comentários, em geral, para tornar o código autoexplicativo. |
</WRAP> | </WRAP> | ||
Linha 724: | Linha 730: | ||
<WRAP center round todo 80%> | <WRAP center round todo 80%> | ||
- | Siga para a aba de [[01_curso_atual:exercicios1|exercícios]] para seguir os execícios desse tópico. Os exercícios ficarão embutidos nesse wiki, mas deixaremos sempre o link para o notaR caso prefiram abrir a plataforma diretamente. **Lembre-se de logar no sitema notaR** antes de fazer os exercícios e não deixe de passar pela aba da apostila, ela e complementar aos [[03_apostila:01-intro|tutoriais]], apesar de alguma redundância desejável. | + | Siga para a aba de [[01_curso_atual:exercicios1|exercícios]] para seguir os exercícios desse tópico. Os exercícios ficarão embutidos nesse wiki, mas deixaremos sempre o link para o notaR caso prefiram abrir a plataforma diretamente. **Lembre-se de logar no sistema notaR** antes de fazer os exercícios e não deixe de passar pela aba da apostila, pois ela é complementar aos [[03_apostila:01-intro|tutoriais]], apesar de possuir alguma redundância desejável para melhor fixar o conteúdo das atividades. |
</WRAP> | </WRAP> |