Trabalhando com uma tabela no R [Parte I] / Working with a table on R [Part I]

Faaaaala cientista! Tudo certo?
Esse post veio de uma pergunta feita pelo Átila Iamarino (@oatila). Vamos abordar algumas coisas sobre tabelas no R, continuando no caminho pra abandonar aquele monte de programas piratas no seu PC! Vamos lá!

Hey scientist! How is it going?
This post came from a question made by Átila Iamarino (@oatila). We will approach some stuff about tables on R; we’ll continue our journey to get rid of all these pirate software in your PC! Let’s do that!

Meu senhor, minha senhora, abram o seu RStudio! Vamos utilizá-lo hoje. (…) Não instalou o R ou o RStudio ainda? Então veja como proceder nesse post aqui. Depois volte e continuaremos a nossa saga, matando uma tabela por dia! É… quase isso. 🙂

Lady, gentleman, open your RStudio! We’ll use it today. (…) Didn’t install R or RStudio yet? So, follow the instructions on this previous post. Then come back and we will continue our saga, killing a table a day! Yeah… sort of 🙂

Você possui aqueles arquivos malandros pra analisar estatisticamente, certo? Talvez eles sejam do Micro$oft Excel (extensão .xls ou .xlsx). Com sorte, são arquivos de texto puro (extensão .txt, .csv, entre milhares de outras). Como trabalhar com eles no R?

You have that nasty files to statistically analyze, right? Maybe they are from Micro$oft Excel (.xls or .xlsx extension). If you’re lucky, they have pure text (.txt, .csv, among thousands of other extensions). How to work with that on R?

Vamos tratar primeiro do caso dos arquivos do Excel, o mais chato. Nosso exemplo vai ser o arquivo ie_data.xls, disponível na página pessoal de Robert Shiller, professor do Departamento de Economia na Yale. Esse arquivo apresenta dados da bolsa de valores utilizados no livro Irrational Exuberance, de autoria do professor Shiller. Baixa o .xls lá meu jovem!
Tive uma ajudinha do R Tutorial nos comandos abaixo, ok? Você vai digitá-los no Console do RStudio. Tecle quando digitar um comando.

Let’s work first in Excel files, the more annoying ones. Our example will be the file ie_data.xls, available at Robert Shiller’s personal page. Shiller is a professor on the Department of Economics at Yale. This file presents data from the stock market, used on the book Irrational Exuberance, written by professor Shiller. Download that .xls man!
Got a little help from R Tutorial with the commands below, ok? You’ll type them at RStudio Console. Hit  when you type a command.

Vamos precisar de um pacote especial para trabalhar com esses arquivos. Primeiro vamos pedir pro R instalar esse pacote, de nome gdata:

We will need an extra package to deal with these files. First, let’s ask R to install that package, named gdata:

install.packages("gdata")

Depois, vamos carregar o pacote gdata para usá-lo no R: / After that, let’s load the package gdata to use it on R:

library("gdata")

E então, vamos utilizar a função read.xls() para ler o arquivo ie_data.xls e colocar o conteúdo na tabela ourdata. Isso é feito com o comando abaixo:

Then, we’ll use the function read.xls() to read the file ie_data.xls and put the contents in the table ourdata. This is done with the command below:

ourdata = read.xls('ie_data.xls')

Podemos ver as primeiras linhas da nossa tabela usando a função head(). O resultado do comando aplicado na nossa tabela é dado abaixo.

We can see the first lines of our table using the function head(). The result of this command applied on our table is given below.

head(ourdata)
  Stock.Market.Data.Used.in..Irrational.Exuberance..Princeton.University.Press..2000..2005..2015..updated
1                                                                                       Robert J. Shiller
2                                                                                                        
3                                                                                                        
4                                                                                                        
5                                                                                                        
6                                                                                                    Date
      X      X.1      X.2        X.3      X.4       X.5   X.6      X.7      X.8
1                                                                              
2                                                                              
3                           Consumer                                           
4   S&P                        Price               Long                        
5 Comp. Dividend Earnings      Index   Date    Interest  Real     Real     Real
6     P        D        E        CPI Fraction Rate GS10 Price Dividend Earnings
  Cyclically X.9
1   Adjusted  NA
2      Price  NA
3   Earnings  NA
4      Ratio  NA
5   P/E10 or  NA
6       CAPE  NA

Veja que as primeiras linhas estão cheias de texto que não é necessário. Estamos vendo até a linha 6. Vamos ver a linha 7…

Note that the first lines have text that we don’t need. We are seeing until line 6. Let’s see line 7…

ourdata[7,]
  Stock.Market.Data.Used.in..Irrational.Exuberance..Princeton.University.Press..2000..2005..2015..updated
7                                                                                                 1871.01
     X  X.1  X.2   X.3     X.4  X.5   X.6  X.7  X.8 Cyclically X.9
7 4.44 0.26 0.40 12.46 1871.04 5.32 84.41 4.94 7.60       <NA>  NA

Boa! A linha 7 contém os primeiros valores da tabela. Então, vamos pedir pra read.xls() jogar fora as seis primeiras linhas:

Sweet! Line 7 contains the first values of the table. So, let’s ask to read.xls() throw away the six first lines:

ourdata = read.xls('ie_data.xls', skip = 6)
head(ourdata)
     Date    P    D   E   CPI Fraction Rate.GS10 Price Dividend Earnings CAPE  X
1 1871.01 4.44 0.26 0.4 12.46  1871.04      5.32 84.41     4.94     7.60   NA NA
2 1871.02 4.50 0.26 0.4 12.84  1871.13      5.32 83.02     4.80     7.38   NA NA
3 1871.03 4.61 0.26 0.4 13.03  1871.21      5.33 83.80     4.73     7.27   NA NA
4 1871.04 4.74 0.26 0.4 12.56  1871.29      5.33 89.43     4.91     7.55   NA NA
5 1871.05 4.86 0.26 0.4 12.27  1871.38      5.33 93.83     5.02     7.72   NA NA
6 1871.06 4.82 0.26 0.4 12.08  1871.46      5.34 94.52     5.10     7.84   NA NA

Ficou ótimo! Agora, use a função names() com o nome da variável, pra ver os nomes das colunas da tabela (as variáveis estatísticas).

It worked great! Now use the function names() with the variable name to see the names of the table columns (the statistical variables).

names(ourdata)
 [1] "Date"      "P"         "D"         "E"         "CPI"       "Fraction"  "Rate.GS10"
 [8] "Price"     "Dividend"  "Earnings"  "CAPE"      "X"

Vamos mudar os nomes de acordo com o arquivo .xls. Pra isso usamos names(ourdata) . Dá uma olhada:

Let’s change these names according to the .xls file. To do that we use names(ourdata) . Check it out:

names(ourdata) = c('Date','S&P Comp','Dividend','Earnings','C. P. Index','Date Fraction','Long Interest Rate GS10','Real Price','Real Dividend','Real Earnings','CAPE','X')
names(ourdata)
 [1] "Date"                    "S&P Comp"                "Dividend"               
 [4] "Earnings"                "C. P. Index"             "Date Fraction"          
 [7] "Long Interest Rate GS10" "Real Price"              "Real Dividend"          
[10] "Real Earnings"           "CAPE"                    "X"     

Pra terminar esse post, veja que a última coluna, “X”, só contém elementos NA (não disponível). Vamos apagar essa variável:

To finish this post, check that the last column, “X”, only contains NA (not available) elements. Let’s erase this variable:

ourdata$X
   [1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
  [28] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
  [55] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
  [82] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [109] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [136] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [163] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [190] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [217] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [244] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [271] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [298] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [325] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [352] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [379] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [406] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [433] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [460] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [487] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [514] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [541] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [568] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [595] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [622] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [649] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [676] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [703] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [730] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [757] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [784] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [811] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [838] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [865] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [892] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [919] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [946] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
 [973] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1000] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1027] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1054] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1081] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1108] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1135] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1162] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1189] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1216] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1243] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1270] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1297] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1324] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1351] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1378] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1405] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1432] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1459] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1486] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1513] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1540] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1567] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1594] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1621] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1648] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1675] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1702] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[1729] NA NA NA NA NA NA NA

ourdata$X = NULL
names(ourdata)
 [1] "Date"                    "S&P Comp"                "Dividend"               
 [4] "Earnings"                "C. P. Index"             "Date Fraction"          
 [7] "Long Interest Rate GS10" "Real Price"              "Real Dividend"          
[10] "Real Earnings"           "CAPE"  

Hasta la vista! Veja que utilizamos names() depois para verificar que a variável “X” tivesse sido apagada.
Por hoje é só cientista! Achei que esse post seria pequeno hein. hahahaha! Esse vai render uma coleção de posts sobre o R! Por hora, teste as variações! Teste arquivos diferentes, modifique os comandos… interaja!
Um giga abraço! Até a próxima!

Hasta la vista! Note that we used names() after to check that “X” has been erased.
That’s it for today, scientist! I thought that this post would be smaller, huh? hahaha! This one will introduce a collection of posts about R! For now, try some variations! Try different files, modify the commands… interact!
Gigaregards! See you next time!


Gostou? Curta e compartilhe com seus amigos!
Curta a gente também no Facebook: www.facebook.com/programandociencia
Estou no Twitter! Siga-me se puder! @alexdesiqueira

Like this? Please comment and share with your friends!
Like us also on Facebook: www.facebook.com/programandociencia
I’m on Twitter! Follow me if you can! @alexdesiqueira

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s