4 Entrada de dados

Este terceiro capítulo foi baseado no livro Conhecendo o R: Um visão mais que estatística, e na página do Prof. Paulo Justiniando Ribeiro modificações foram realizadas utilizando outros materiais que se encontram referenciados no final desse capítulo.

O diretório de trabalho é aquele usado pelo R para gravar, ler, importar e exportar arquivos quando nenhum outro caminho é explicitado.

4.1 Onde os dados devem estar?

Para saber onde os diretórios estão basta digitar o comando getwd():

## [1] "D:/livro/TudodoRa"

Caso queira alterar o diretório de trabalho para um outro lugar, digite o comando setwd():

Outra forma de mudar o caminho é com o comando:

Este comando irá abrir uma tela para que o usuário navegue nas pastas e escolha o arquivo a ser aberto.

Você pode exibir o conteúdo do diretório com o comando dir():

##  [1] "_bookdown.yml"                   "_bookdown_files"                
##  [3] "_main.Rmd"                       "_output.yml"                    
##  [5] "01-R_basico.Rmd"                 "02-Estrutura_basica.Rmd"        
##  [7] "03-Entrada_dados.Rmd"            "04-Criando_graficos.Rmd"        
##  [9] "05-Criando_graficos_2.Rmd"       "06-Teste_T_corre.Rmd"           
## [11] "07-Anova_dic.Rmd"                "08-Anova_DBC.Rmd"               
## [13] "09-Anova_QL.Rmd"                 "10-Regressao_L_M.Rmd"           
## [15] "11-Regressao_N_linear.Rmd"       "12-Multivariada.Rmd"            
## [17] "13-Dados_clima.Rmd"              "14-Dados_tempor.Rmd"            
## [19] "16-Tendencia_tempora.Rmd"        "17-Analise_imagens.Rmd"         
## [21] "18-Analise_imagens_sentinel.Rmd" "19-Referencia.Rmd"              
## [23] "book.bib"                        "CHM.tif"                        
## [25] "docs"                            "ET_Abtew.csv"                   
## [27] "ET_BrutsaertStrickler.csv"       "ET_ChapmanAustralian.csv"       
## [29] "ET_GrangerGray.csv"              "ET_HargreavesSamani.csv"        
## [31] "ET_JensenHaise.csv"              "ET_Makkink.csv"                 
## [33] "ET_MattShuttleworth.csv"         "ET_McGuinnessBordne.csv"        
## [35] "ET_Penman.csv"                   "ET_PenmanMonteith.csv"          
## [37] "ET_PenPan.csv"                   "ET_PriestleyTaylor.csv"         
## [39] "ET_Romanenko.csv"                "ET_Turc.csv"                    
## [41] "ETP.txt"                         "image"                          
## [43] "index.Rmd"                       "LICENSE"                        
## [45] "packages.bib"                    "preamble.tex"                   
## [47] "README.md"                       "search_index.json"              
## [49] "sentinel2.tif"                   "style.css"                      
## [51] "tab.xls"                         "TudodoR.Rmd"                    
## [53] "TudodoR.Rproj"                   "TudodoR_files"

4.2 Entrando com dados

O formato mais adequado vai depender do tamanho do conjunto de dados, e se os dados já existem em outro formato para serem importados ou se serão digitados diretamente no R.

A seguir são descritas formas de entrada de dados com indicão de quando cada uma das formas deve ser usada.

4.2.1 Vetores

Podemos entrar com dados definindo vetores com o comando c(), conforme visto no capítulo 3:

Esta forma de entrada de dados é conveniente quando se tem um pequeno número de dados. Quando os dados têm algum elemento repetido, números sequenciais podem ser usados com mecanismos do R para facilitar a entrada dos dados como vetores:

##  [1] 2 5 2 5 2 5 2 5 2 5
## [1] 5 5 5 8 8 8

4.2.2 Usando a função ‘scan’

Esta função coloca o modo prompt onde o usuário deve digitar cada dado seguido da tecla . Para encerrar a entrada de dados basta digitar duas vezes consecutivos. Veja o seguinte resultado:

## numeric(0)

Este formato é mais ágil que o anterior e mais conveniente para digitar vetores longos.

4.2.3 Copiar e colar usando scan()

Pode usar o recurso “copiar e colar” com o comando scan. Após copiar os dados (crtl+C), digite no prompt/console o comando scan(), aperte >ENTER<, depois cole o texto e, aperte >ENTER< novamente.

4.2.4 Lendo dados através da área de transferência

Funções como scan(), read.table() e outras podem ser usadas para ler os dados diretamente da área de transferência passando-se ao “clipboard” ao primeiro argumento:

4.2.5 Usando a função edit

O comando edit(data.frame()) abre uma planilha para digitação de dados que são armazanados como data-frames:

Se você precisar abrir novamente planilha com os dados, para fazer modificações e/ou inserir mais dados, use o comando fix:

4.2.5.1 Exemplo 1

## [1] 10 20 30 40 50

Porém houve um erro: o último elemento deveria ser 60 e não 50, você não precisa criar novamente um objeto, use o comando edit():

4.2.5.2 Exemplo 2

Com uma planilha com três colunas de dados. Os valores numéricos da coluna poderiam ser importados para o R utilizando-se o mesmo processo descrito com o uso do comando scan(). Abra o arquivo: EVI-prec.xlsx.

Uma matrix com os dados poderá ser obtida com o comando cbind:

O objeto dados é um data.frame:

Transforme para um data.frame com o comando as.data.frame:

Poderia usar o comando data.frame direto:

4.2.6 Lendo dados de um arquivo texto

É muito importante ter os dados tabulados em um arquivo-texto ou em outros formatos que permitem a conversão para dados texto. O comando read.table () é extremamente útil por ler dados de um arquivo-texto no formato de um data.frame

Usando o Comando read.table ()

4.2.6.1 Exemplo 1

Como primeiro exemplo considere importar para o R os dados do arquivo texto: exemplo1.txt.

4.2.6.2 Exemplo 2

Como primeiro exemplo considere importar para o R os dados do arquivo de texto: exemplo2.txt.

Note que este arquivo difere do anterior em um aspecto: os nomes das variáveis estão na primeira linha. Para que o R considere isto corretamente, temos que informá-lo com o argumento head=T. Portanto para importar este arquivo usamos:

4.2.7 Dados do tipo CSV

Exemplo3.csv: Vamos utilizar um arquivo de tipo CSV:

Note que este arquivo difere do primeiro em outros aspectos: read.table.

1.sep: caractere utilizado para separação dos campos e valores. Normalmente é utilizado o ponto e virgula (;)

1.dec: caractere utilizado para separar as casas decimais. Normalmente ponto (.) ou virgula (,).

1.header: TRUE, assume que a primeira linha da tabela contêm rotulos das variáveis. ‘FALSE’, assume que os dados se iniciam na primeira linha.

4.2.8 A seguir listamos algumas destas funções:

  1. read.dbf() para arquivos DBASE
  2. read.epiinfo() para arquivos .REC do Epi-Info
  3. read.mtp() para arquivos “Minitab Portable Worksheet”
  4. read.S() para arquivos do S-PLUS, e restore.data() para “dumps” do S-PLUS
  5. read.spss() para dados do SPSS
  6. read.systat() para dados do SYSTAT
  7. read.dta() para dados do STATA
  8. read.octave() para dados do OCTAVE (um clone do MATLAB)
  9. read.csv(file, header = TRUE, sep=“,”, dec=“.”)
  10. read.csv2(file, header = TRUE, sep=“;”, dec=“,”)
  11. read.delim(file, header = TRUE, sep=“, dec=”.")
  12. read.delim2(file, header = TRUE, sep=“, dec=”,")

4.2.9 Lendo dados disponíveis na web

Exemplo 4: As funções permitem ler ainda dados diretamente disponíveis na web. Por exemplo os dados do exemplo1.txt poderiam ser lidos diretamente com o comando a seguir:

4.2.10 Lendo dados de uma planilha eletrônica

Com o pacote xlsx é possivel ler os dados diretamente da planilha eletrônica do Excel.

O comando read.xlsx(), do pacote xlsx, lê o conteúdo de uma planilha eletrônica para o R com a estrutura de dados de um data.frame:

4.2.11 Exercícios

  1. Baixe os seguintes arquivos:

Coloque os arquivos em um local apropriado (de preferência no mesmo diretório de trabalho que você definiu no início da sessão), faça a importação usando a função de sua escolha, e confira a estrutura dos dados com ´str()´:

4.3 Salvar objetos de dados

Salvar objetos de dados nos formatos .txt ou .csv função: write.table sintaxe da função: write.table(x, file, sep="“, dec=”", rownames = T, col.names = T)

Principais argumentos: 1. x - matriz ou data frame 1. file - nome do arquivo ou caminho do arquivo 1. sep - separador da coluna 1. dec - separador deciminal

4.3.1 Outras funções

write.csv() write.csv2() write.xlsx ()

Exemplo: write.xlsx(dados,“tabela salva.xlsx”)

4.4 Referência

MELO, M. P.; PETERNELI, L. A. Conhecendo o R: Um visão mais que estatística. Viçosa, MG: UFV, 2013. 222p.

Prof. Paulo Justiniando Ribeiro >http://www.leg.ufpr.br/~paulojus/<

Prof. Adriano Azevedo Filho >http://rpubs.com/adriano/esalq2012inicial<

Prof. Fernando de Pol Mayer >https://fernandomayer.github.io/ce083-2016-2/<