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
## 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.
ex03 <- read.table( # lê dados de um arquivo texto
"exemplo3.csv", # nome do arquivo ou o caminho c:/R.exemplo3.csv
head=T, # primeira linha ? cabe?alho
sep=":", # separador de coluna
dec=",") # virgula como separador
ex03 # exibe o objeto
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:
- read.dbf() para arquivos DBASE
- read.epiinfo() para arquivos .REC do Epi-Info
- read.mtp() para arquivos “Minitab Portable Worksheet”
- read.S() para arquivos do S-PLUS, e restore.data() para “dumps” do S-PLUS
- read.spss() para dados do SPSS
- read.systat() para dados do SYSTAT
- read.dta() para dados do STATA
- read.octave() para dados do OCTAVE (um clone do MATLAB)
- read.csv(file, header = TRUE, sep=“,”, dec=“.”)
- read.csv2(file, header = TRUE, sep=“;”, dec=“,”)
- read.delim(file, header = TRUE, sep=“, dec=”.")
- 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
- 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/<