Dataframes
# -----------------------------------------------------------------------------
# Data Frames
# -----------------------------------------------------------------------------
x = rnorm(10,
10,
2)
y = letters[1:10]
data.frame()
## data frame com 0 coluna e 0 linha
## x y
## 1 8.054295 a
## 2 9.026702 b
## 3 11.200148 c
## 4 7.286668 d
## 5 6.583426 e
## 6 8.518276 f
## 7 9.813054 g
## 8 8.164950 h
## 9 9.104841 i
## 10 6.138341 j
# O comando str informa (retorna) a estrutura de um objeto e a parte dos dados
# que contém:
str(dF)
## 'data.frame': 10 obs. of 2 variables:
## $ x: num 8.05 9.03 11.2 7.29 6.58 ...
## $ y: chr "a" "b" "c" "d" ...
# A instrução 'summary' sumariza um objeto (aqui, um frame, mas vai bem com
# quase todos objetos):
summary(dF)
## x y
## Min. : 6.138 Length:10
## 1st Qu.: 7.479 Class :character
## Median : 8.342 Mode :character
## Mean : 8.389
## 3rd Qu.: 9.085
## Max. :11.200
# Pode-se ter acesso aos dados das colunas de diversas maneiras:
dF$x
## [1] 8.054295 9.026702 11.200148 7.286668 6.583426 8.518276 9.813054 8.164950
## [9] 9.104841 6.138341
## [1] 8.054295 9.026702 11.200148 7.286668 6.583426 8.518276 9.813054 8.164950
## [9] 9.104841 6.138341
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
## [1] 8.054295 9.026702 11.200148 7.286668 6.583426 8.518276 9.813054 8.164950
## [9] 9.104841 6.138341
## [1] 8.054295 9.026702 11.200148 7.286668 6.583426 8.518276 9.813054 8.164950
## [9] 9.104841 6.138341
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
## [1] 10 2
## [1] "x" "y"
## [1] "1" "2" "3" "4" "5" "6" "7" "8" "9" "10"
# Pode-se mudar o nome das linhas ou das colunas:
names(dF) = c('ivan',
'joao')
dF
## ivan joao
## 1 8.054295 a
## 2 9.026702 b
## 3 11.200148 c
## 4 7.286668 d
## 5 6.583426 e
## 6 8.518276 f
## 7 9.813054 g
## 8 8.164950 h
## 9 9.104841 i
## 10 6.138341 j
row.names(dF) = letters[1:nrow(dF)]
row.names(dF) = c('Br','Fr','Ba','KK','LL','DR','QA','WW','FF', 'NN')
dF$z = seq(1, 10)
names(dF) = c('r',
'tt',
'zz')
dF
## r tt zz
## Br 8.054295 a 1
## Fr 9.026702 b 2
## Ba 11.200148 c 3
## KK 7.286668 d 4
## LL 6.583426 e 5
## DR 8.518276 f 6
## QA 9.813054 g 7
## WW 8.164950 h 8
## FF 9.104841 i 9
## NN 6.138341 j 10
# Pode-se ter acesso direto as colunas de um frame usando o comando attach().
# Obs: Não deve esquecer-se de destacá-lo detach() quando terminar!
attach(dF)
mean(r)
## [1] 8.38907
## [1] 5.5
detach(dF)
# Opção melhor
with(dF,
mean(zz))
## [1] 5.5
## [1] 6.138341 6.583426 7.286668 8.054295 8.164950 8.518276 9.026702 9.104841
## [9] 9.813054 11.200148
# -----------------------------------------------------------------------------
# Exercícios
# -----------------------------------------------------------------------------
# 1. Crie um dataframe expondo os nomes de 10 pacientes de uma academia, constando peso e altura de cada um, e obtendo também a média desses dois parâmetros
# 2. Uma socióloga deseja estudar o perfil dos alunos em um determinado curso da universidade. Monte um dataframe com os seguintes dados de cada pessoa: nome, raça, entrada ou não por ação afirmativa, renda mensal familiar. (Supor 15 alunos)
# 3. Um biólogo deseja avaliar um tipo de réptil. Monte um data frame que contenha a cor de cada réptil estudado(verde, marrom ou preto), o tamanho, e se é macho ou fêmea. Responda o tamanho médio, a quantidade de répteis por cores e a quantidade de machos e de fêmeas. (Suponha que 10 répteis estejam sendo estudados)