Estatistica usado o R
224 pág.

Estatistica usado o R


DisciplinaBioestatística I4.668 materiais34.970 seguidores
Pré-visualização50 páginas
fim \u2013 write.table() \u2013 faz parte do pacote base, que é instalada junto com a instalação básica do
R.
O caso mais geral é exportar dados num formato ASCII delimitado por espaço ou tabulação.
Vamos começar com a separação por tabulação. Este formato pode ser lido por diversos programas,
como Excel, SPSS, SAS, dentre outros.
Se você já fez o módulo básico, deve se lembrar do banco de dados iris com algumas
medidas de pétalas e sépalas de algumas espécies de flores. Bem, vamos invocar esse mesmo banco
e trabalhar com ele:
data(iris)
dados <- iris
Vamos usar a função write.table():
write.table(dados, file=&quot;iris.dat&quot;, sep=&quot;\t&quot;, row.names=F, quote = FALSE)
1
Os 3 primeiros argumentos da função write.table() não devem suscitar dúvidas: o
primeiro é o nome do objeto a ser exportado, o segundo, o nome do arquivo onde o dado será
armazenado e o terceiro o tipo de delimitador a ser usado, que neste caso é esse &quot;\t&quot; que significa
tabulações. O argumento row.names=F serve para indicar que as linhas desse objeto não têm nome
e ainda previne o R de colocar números como nomes (por default o R vai fazer uma numeração
crescente, como se fosse o número do registro, se esse argumento for T). O argumento quote =
FALSE serve para indicar ao R que variáveis tipo caracter devem ser exportadas sem estar entre
aspas (porque se estiverem o SPSS por exemplo não vai levar isso em conta e vai importar as aspas
junto).
O arquivo gerado \u201ciris.dat\u201d pode ser facilmente importado para diversos programas. A
técnica de importação para outros programas não faz parte do escopo desse módulo e deverá ser
dominado por pessoas que trabalham com os respectivos programas de uma forma regular.
Uma dúvida natural do leitor nesse momento seria: legal exportei os dados para um arquivo,
mas onde está este arquivo??? Boa pergunta! Por default, o R salva o arquivo no mesmo diretório
de onde você está trabalhando, ou seja no mesmo diretório onde está o seu arquivo \u201c.Rdata\u201d. Se
você quiser saber que diretório é esse, faça assim:
getwd()
Se você utilizou esse código, notou uma coisa estranha: o diretório veio com duas barras
invertidas, em vez de uma só como é usual, se você tem alguma experiência com caminhos de
diretórios do DOS, algo assim:
&quot;C:\\Documents and Settings\\Owner\\My Documents\\ENSP\\Curso R&quot;
É assim mesmo: no R nós temos que escrever os caminhos de diretórios com duas barras
invertidas. Opcionalmente, podemo usar uma barra para frente, como veremos num exemplo
adiante.
O outro formato que vamos ver nessa seção é o separado por vírguas, ou \u201c.csv\u201d, um formato
que é lido diretamente pelo Excel. A idéia é fundamentalmente a mesma, só diferindo o
delimitador:
> write.table(dados, file=&quot;iris.csv&quot;, row.names=F, sep=&quot;,&quot;, quote=F)
O arquivo &quot;iris.csv&quot; pode ser aberto diretamente no Excel, simplesmente dando um duplo
clique sobre o arquivo. Onde foi salvo este arquivo? No mesmo lugar que o anterior.
Mas e se você quiser salvar em um diretório específico? Bom, nesse caso, o argumento
deve conter o caminho completo do diretório, seguido do nome do arquivo. Por exemplo, digamos
que eu queira salvar esse arquivo no diretório \u201ctemp\u201d que está na raiz do drive C da minha
máquina. O código seria:
write.table(dados, file=&quot;c:/temp/iris.csv&quot;, row.names=F, sep=&quot;,&quot;, quote=F)
Observe que aqui utilizamos a barra para frente em vez das duas barras invertidas. O código
abaixo teria o mesmo efeito:
write.table(dados, file=&quot;c:\\temp\\iris.csv&quot;, row.names=F, sep=&quot;,&quot;,
quote=F)
Entrada de Dados
O R é capaz de ler arquivos de dados salvos em diversos formatos diferentes, como ASCII
(arquivo texto, delimitado por espaço, tabulação, vírgula, ponto-e-vírgula, entre outros), Excel,
2
SPSS, EpiInfo, etc. No caso do Excel, como veremos adiante, o processo de importação não é
direto, tendo que se salvar inicialmente em um formato \u201c.csv\u201d.
A função mais simples que lê dados externos no R faz parte do pacote básico e se chama
read.table() e também pertence ao pacote base. Essa função vai importar dados em formato
ASCII para um objeto do tipo dataframe. Vamos ver um exemplo, usando a base de dados que nós
acabamos de exportar (note que o arquivo \u201ciris.dat\u201d deve estar presente no seu diretório de
trabalho):
dados1 <- read.table(file=&quot;iris.dat&quot;, header=T, sep=&quot;\t&quot;)
Vamos ver por partes o que nós fizemos: criamos um objeto dados1, para não mexer no
objeto dados que nós criamos na seção anterior, através do assignment <- pela função
read.table(), que tem um argumento obrigatório (file) e dois argumentos opcionais (header=T
e sep=\u201d\t\u201d). 
Bom, file é simplesmente o nome do arquivo externo onde os dados estão armazenados,
com a extensão inclusive e entre aspas. O argumento header=T é para indicar para o R que a
primeira linha contém o nome das variáveis nesse banco. O último argumento que usamos,
sep=\u201d\t\u201d é usado para indicar que a delimitação dos dados nesse caso é feita por tabulação. Uma
importante observação é que se o separador fosse espaço e não tabulação, a função leria os dados da
mesma forma, apenas mudando-se para sep=&quot;\t&quot;. Que tal dar uma olhadinha na ajuda dessa
função? Boa sorte...
Bom, a primeira providência após importar os dados é dar uma olhadinha neles para ver se
tudo funcionou a contento. Se a gente quisesse ver esse banco inteiro, bastaria digitar o nome do
objeto dados (como você deve se lembrar que acontece com qualquer objeto). Como esse banco
tem 150 registros e 5 variáveis, que tal a gente ver somente os 10 primeiros registros? Vamos
tentar:
> dados1[1:10,]
 slength swidth plength pwidth species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3.0 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5.0 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5.0 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
Antes de passarmos para o próximo assunto, um detalhe que incomoda um pouco no R é a
impossibilidade de (por enquanto, pelo menos) nomear variáveis usando o caracter underscore (_).
Isso acontece, porque esse caracter, para o R, corresponde ao caracter de assignment. Embora isso
esteja mudando no R (e ao que parece isso será abolido no futuro), ele ainda entende \u201c_\u201d como um
assignment (muito embora na atual versão você receba uma advertência quando usa). Vamos ver
como funciona:
> x _ c(1,2,3)
Warning message: 
The use of _ is deprecated: you will be warned only once per session 
> x
[1] 1 2 3
Muito embora o meu objeto x tenha recebido o vetor (1,2,3), o programa adverte que o uso
do \u201c_\u201d não é recomendado...
3
Agora vamos passar para o caso de um arquivo em Excel, que você gostaria que fosse lido
pelo R. Como foi mencionado anteriormente, o R não é capaz de ler um arquivo em formato \u201c.xls\u201d
diretamente; é preciso salvar o arquivo antes em um formato ASCII. Vamos ver como funciona?
Não faz parte do escopo deste material ensinar como salvar um arquivo do Excel no formato
separado por vírgulas (ou CSV, comma-separated values em inglês), que será facilmente lido pelo
R.
Bem, mas como somos muito bonzinhos, vamos descrever rapidamente como funciona: uma
vez que você tenha aberto o arquivo que deseja salvar no Excel, pressione a tecla \u201cF12\u201d no teclado,
o que abrirá o menu \u201cSalvar Como\u201d. Na parte inferior do menu na opção \u201csalvar arquivo do tipo\u201d,
selecione \u201cCSV\u201d: é simples assim mesmo.
Porém, meus amigos, nem tudo são flores... Existe um detalhe muito importante que os
usuários do Excel devem saber: se o seu Excel for em português, provavelmente o delimitador será
um ponto-e-vírgula e não uma vírgula, como deveria ser; se for em inglês, o delimitador será o
certo, ou seja, com vírgula mesmo. Isso vai fazer diferença porque é preciso especificar o tipo de
separador se você usar a função read.table().
Bem, mas nós já temos um arquivo salvo no formato CSV que é o \u201ciris.csv\u201d, que é um
arquivo ASCII delimitado por vírgulas, lembra?