Aula 10 – Curso de R – Leitura de arquivo com scan e read.fwf

 Aula 10 – Curso de programação em R

Leitura de arquivo no R com scan e read.fwf

Endereço para baixar os arquivos e o script:

https://github.com/toticavalcanti/curso_r

Antes de começar, quero deixar meu link de afiliados na Hostinger, tá valendo a pena, dêem uma olhada: Hostinger

Dêem um joinha ? na página do Código Fluente no Facebook
Facebook

Meu link de referidos na digitalocean pra vocês.

Quem se cadastrar por esse link, ganha $100.00 dólares de crédito na digitalocean:

Digital Ocean

Esse outro é da one.com:

One.com

A função scan() é mais flexível do que read.table.

Baixe o arquivo no link abaixo, esse arquivo é do portal da transparência:

https://github.com/toticavalcanti/curso_r/blob/master/20180901_SPU_ImoveisFuncionais_ListaPermissionarios.csv

Quem quiser dá uma olhada no portal, acesse:

http://www.portaltransparencia.gov.br/download-de-dados/

Lá tem o mapa dos dados.

A origem dos dados:

  • Ministério das Relações Exteriores (MRE)
  • Secretaria do Patrimônio da União (SPU)
  • Ministério da Defesa (MD)
  • Procuradoria da República (PR)

Entre outras informações.

Coloque o arquivo baixado na pasta de trabalho do R.

Limpe a memória:

rm (list = ls ())

Vamos definir nossa pasta de trabalho, o local onde colocamos esse arquivo baixado.


#Define o path para ler os arquivos .csv ou qualquer outro formato
setwd("\caminho\para\pasta\suaPasta")

Vamos ler os dados desse arquivo usando o scan():

mydata <- scan("20180901_SPU_ImoveisFuncionais_ListaPermissionarios.csv",
sep = ";",
what = list("", "", "", "", ""))

lê os dados do arquivo 20180901_SPU_ImoveisFuncionais_ListaPermissionarios.csv usando o separador ” ; ” onde os cinco campos são strings.

O scan() pode ser usada para criar objetos, vetores, matrizes, data frames, listas, etc.

No exemplo acima, 20180901_SPU_ImoveisFuncionais_ListaPermissionarios.csv é uma lista de cinco strings.

Por padrão, se você omitir o what = list e os tipos, o scan() cria um vetor numérico.

Se os dados lidos não corresponderem ao(s) modo(s) esperado (por padrão, ou especificado), uma mensagem de erro é retornada. As opções são as seguintes.

scan(file = "", what = double(0), nmax = -1, n = -1, sep = "", quote = if (sep=="\n") "" else "'\"", dec = ".", skip = 0, nlines = 0, na.strings = "NA", flush = FALSE, fill = FALSE, strip.white = FALSE, quiet = FALSE, blank.lines.skip = TRUE, multi.line = TRUE, comment.char = "", allowEscapes = TRUE)read.table(file, header = FALSE, sep = "", quote = "\"'", dec = ".", row.names, col.names, as.is = FALSE, na.strings = "NA", colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill = !blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE, comment.char = "#")

file

O nome do arquivo (dentro de “”), possivelmente com seu caminho (o símbolo \ não é permitido e deve ser substituído por /, mesmo no Windows), ou um acesso remoto a um arquivo do tipo URL (http: // …); se file = “”, os dados podem ser introduzidos via teclado (a entrada é terminada por uma linha em branco)

what

Especifica o(s) modo(s) dos dados (numéricos por padrão)

nmax

Número de dados a serem lidos, ou, se for uma lista, o número de linhas a serem lidas (por padrão, a varredura lê os dados até o final do arquivo)

n

Número de dados a serem lidos (por padrão, sem limite)

sep

Separador de campo usado no arquivo

quote

Caracteres usados para citar as variáveis no modo caractere

dec

Caractere usado para o ponto decimal

skip

Número de linhas a serem puladas antes de ler os dados

nlines

Número de linhas a serem lidas

na.string

o valor dado aos dados sem valor(convertido para NA)

flush

Se TRUE, o scan vai para a próxima linha quando o número de
colunas for atingido (permite que o usuário adicione comentários no
arquivo de dados)

fill

Se TRUE e todas as linhas não tiverem o mesmo número de variáveis, “blanks” serão adicionados

strip.white

Se TRUE, exclui espaços extras antes e depois das variáveis caracteres(char)

quiet

Se FALSE, exibe uma linha mostrando quais campos foram lidos.

blank.lines.skip

Se TRUE, ignora linhas em branco

multi.line

Se for uma lista, especifica se as variáveis estão em uma única linha no arquivo

comment.char

Caractere que define os comentários no arquivo de dados, o restante da linha após esse caractere é ignorado (o padrão é desativado)

allowEscapes

Especifica se o estilo C de escape (por exemplo, ‘\t ‘) vai ser processado (por padrão) ou lido como textual.

A função read.fwf pode ser usada para ler em um arquivo alguns dados em formato de largura fixa:

read.fwf(file, widths, header = FALSE, sep = "\t", as.is = FALSE, skip = 0, row.names, col.names, n = -1, buffersize = 2000, ...)

As opções são as mesmas que para read.table (), exceto as larguras que especificam a largura dos campos. (buffersize é o número máximo de linhas lidas simultaneamente).

Por exemplo, se um arquivo chamado data.txt tiver os dados:

A1.501.2
A1.551.3
B1.601.4
B1.651.5
C1.701.6
C1.751.7

Baixe o arquivo com esses dados:

https://github.com/toticavalcanti/curso_r/blob/master/data.txt

Pode-se ler os dados com o seguinte comando:

mydata02 <- read.fwf("data.txt", width = c(1, 4, 3))

mydata02

V1   V2    V3
1  A    1.50   1.2
2  A    1.55   1.3
3  B    1.60   1.4
4  B    1.65   1.5
5  C    1.70   1.6
6  C    1.75   1.7

Veja que a largura do primeiro dado de uma linha é do tamanho 1, é só um caracter, o segundo dado de uma linha é de tamanho 4, 1 dígito seguido de uma ponto e mais dois dígitos e o último dado de uma linha é de tamanho 3, um dígito seguido de um ponto e mais um dígito.

Com isso encerramos mais essa aula do curso de R, na próxima veremos a função write.table.

Esse são meus link de afiliados na Hostinger: Hostinger

Curta a página do Código Fluente no Facebook
https://www.facebook.com/Codigofluente-338485370069035/

Meu link de referidos na digitalocean .

Quem se cadastrar por esse link, ganha $100.00 dólares de crédito na digitalocean:

Digital Ocean

E o da one.com:

One.com

Obrigado, até a próxima e bons estudos. 😉

About The Author
-

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>