Programação em R – Parte 7 (Lendo Dados de Arquivos)

//Programação em R – Parte 7 (Lendo Dados de Arquivos)

Programação em R – Parte 7 (Lendo Dados de Arquivos)

Os
objetos de dados em grandes volumes geralmente são lidos como valores de
arquivos externos em vez de inseridos durante uma sessão R via teclado. As opções de entrada R são simples e seus requisitos
são bem rígidos, até mesmo inflexíveis. Existe uma clara
presunção pelos designers do R de que você poderá modificar seus
arquivos de entrada usando outras ferramentas, como editores de
arquivos, para atender aos requisitos de R. Geralmente, isso
é muito simples.
Se
as variáveis devem ser mantidas principalmente em data frames,
como sugerimos fortemente, um data frame pode ser lido
diretamente com a função read.table().

Para
obter mais detalhes sobre a importação de dados em R e também para
exportação de dados, consulte o manual R para importar/exportar dados.

A função read.table()

Para
ler um data frame completo diretamente, o arquivo externo
normalmente terá uma forma especial.
  • A primeira linha do arquivo deve ter um nome para cada variável no
    data frame (cabeçalho);
  • Cada linha adicional do arquivo tem como primeiro item um rótulo de
    linha e os valores para cada variável.
Se o
arquivo tiver um item menor em sua primeira linha do que na segunda, este arranjo é presumido como correto e os ajustes necessários são feitos automaticamente. Portanto,
as primeiras linhas de um arquivo a serem lidas como um data frame podem parecer como as seguintes:
Arquivo de entrada com nomes e rótulos de linha:
Preço Chão Área Quart. Idade Cent.heat
01
52.00 111.0 830 5 6.2 não
02 54.75
128.0 710 5 7.5 não
03 57.50 101.0
1000 5 4.2 não
04 57.50 131.0 690
6 8.8 não
05 59.75 93.0 900 5
1.9 sim

Por
padrão, itens numéricos (exceto rótulos de linha) são lidos como
variáveis ​​numéricas e variáveis ​​não-numéricas, como
Cent.heat no exemplo, como fatores. Isso pode ser alterado se
necessário.
A
função read.table() pode então ser usada para ler o data frame diretamente.
Muitas
vezes, você quer omitir, incluindo os rótulos de linha diretamente
e usar os rótulos padrão. Nesse caso, o arquivo pode omitir a
coluna da etiqueta da linha como a seguir.

Arquivo de entrada sem rótulos de linha:
Preço Chão Área Quart. Idade Cent.heat
52.00 111.0 830 5 6.2 não
54.75 128.0 710 5 7.5 não
57.50
101.0 1000 5 4.2 não
57.50
131.0 690 6 8.8 não
59.75 93.0
900 5 1.9 sim

O data frame pode então ser lido como
HousePrice = read.table(“HousePrice.txt”,header=TRUE)

onde
a opção header = TRUE especifica que a primeira linha é uma linha
de cabeçalhos e, portanto, por implicação da forma do arquivo, que
nenhum rótulo de linha explícito é fornecido.

A função scan()

A função scan() fornece um modo bastante flexível de ler arquivos.

Considere o arquivo input.txt com o seguinte conteúdo:
,t1,t2,t3,t4,t5,t6,t7,t8
r1,1,0,1,0,0,1,0,2
r2,1,2,5,1,2,1,2,1
r3,0,0,9,2,1,1,0,1
r4,0,0,2,1,2,0,0,0
r5,0,2,15,1,1,0,0,0
r6,2,2,3,1,1,1,0,0
r7,2,2,3,1,1,1,0,1

Para ler o arquivo, poderia ser feita a seguinte operação:

x
E o resultado seria o seguinte:

> x
[1] “r1,1,0,1,0,0,1,0,2”  “r2,1,2,5,1,2,1,2,1”  “r3,0,0,9,2,1,1,0,1”
[4] “r4,0,0,2,1,2,0,0,0”  “r5,0,2,15,1,1,0,0,0” “r6,2,2,3,1,1,1,0,0”
[7] “r7,2,2,3,1,1,1,0,1”

Caso não tenha percebido, a primeira linha foi omitida na “carga” do arquivo.
Alternativamente, poderia ser lida apenas uma linha do arquivo com a operação:
> x

Read 1 item
E o resultado, neste caso, seria:
> x
[1] “r1,1,0,1,0,0,1,0,2”
É possível também ler o conteúdo do arquivo e armazenar cada linha como um item de uma lista, como abaixo.
> x

[[1]]
[1] “r1,1,0,1,0,0,1,0,2”
[[2]]
[1] “r2,1,2,5,1,2,1,2,1”
[[3]]
[1] “r3,0,0,9,2,1,1,0,1”
[[4]]
[1] “r4,0,0,2,1,2,0,0,0”
[[5]]
[1] “r5,0,2,15,1,1,0,0,0”
[[6]]
[1] “r6,2,2,3,1,1,1,0,0”
[[7]]
[1] “r7,2,2,3,1,1,1,0,1”
[[8]]
[1] “”
[[9]]
[1] “”
Ou ler dados diretamente do teclado:
> x

1: 43    #input 43 from the screen
2:
Read 1 item
> x
[1] “43”
E até mesmo “colar” conteúdo de uma planilha após executar a operação abaixo:
> x
E ter o conteúdo da planilha copiada disponível para uso com o objeto x.
Muito bacana a função scan(), não é mesmo?

Acessando conjuntos de dados pré-definidos

Uma das coisas mais incríveis do R é o conjunto com cerca
de 100 “bandos de dados de exemplo” fornecidos, havendo mais alguns disponíveis em pacotes (incluindo
os pacotes recomendados fornecidos com R).  Para ver a lista de data sets disponíveis, basta executar o comando
> data()
Todos
os conjuntos de dados fornecidos com R estão disponíveis
diretamente pelo nome. No entanto, muitos pacotes ainda utilizam a
convenção obsoleta em que os dados também foram usados ​​para
carregar conjuntos de dados em R, por exemplo
> data(infert)
E isso ainda pode ser usado com os pacotes padrão (como neste
exemplo). Na maioria dos casos, isso irá carregar um objeto R do
mesmo nome. No entanto, em alguns casos, carrega vários objetos,
então veja a ajuda on-line para o objeto para ver o que é recomendado.

Carregando dados de outros pacotes R

Para
acessar dados de um determinado pacote, use o argumento do pacote,
por exemplo
data(package = “rpart”)
data(Puromycin, package = “datasets”)
Se
um pacote foi anexado pela biblioteca, seus conjuntos de dados são
incluídos automaticamente na pesquisa.
Os
pacotes contribuídos pelo usuário podem ser uma fonte rica de
conjuntos de dados.

Conclusão

As funcionalidades da linguagem R para manipulação de dados em arquivos facilitam muito a vida, principalmente depois que você armazena os dados num objeto data frame.
E você? Já usou R para leitura e manipulação de arquivos?
Ficou com alguma dúvida?

Tem interesse em treinamentos em R?
By |2018-08-29T10:16:40+00:00agosto 3rd, 2018|Sem categoria|0 Comments

About the Author:

Leave A Comment