Dataframes
# -----------------------------------------------------------------------------
# Data Frames
# -----------------------------------------------------------------------------
x = rnorm(10,
10,
2)
y = letters[1:10]
data.frame()
## data frame with 0 columns and 0 rows
## x y
## 1 10.685316 a
## 2 11.400806 b
## 3 7.181185 c
## 4 10.692711 d
## 5 13.834454 e
## 6 11.639422 f
## 7 10.600267 g
## 8 11.390469 h
## 9 8.123628 i
## 10 11.433486 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 10.69 11.4 7.18 10.69 13.83 ...
## $ 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. : 7.181 Length:10
## 1st Qu.:10.622 Class :character
## Median :11.042 Mode :character
## Mean :10.698
## 3rd Qu.:11.425
## Max. :13.834
# Pode-se ter acesso aos dados das colunas de diversas maneiras:
dF$x
## [1] 10.685316 11.400806 7.181185 10.692711 13.834454
## [6] 11.639422 10.600267 11.390469 8.123628 11.433486
## [1] 10.685316 11.400806 7.181185 10.692711 13.834454
## [6] 11.639422 10.600267 11.390469 8.123628 11.433486
## [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j"
## [1] 10.685316 11.400806 7.181185 10.692711 13.834454
## [6] 11.639422 10.600267 11.390469 8.123628 11.433486
## [1] 10.685316 11.400806 7.181185 10.692711 13.834454
## [6] 11.639422 10.600267 11.390469 8.123628 11.433486
## [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 10.685316 a
## 2 11.400806 b
## 3 7.181185 c
## 4 10.692711 d
## 5 13.834454 e
## 6 11.639422 f
## 7 10.600267 g
## 8 11.390469 h
## 9 8.123628 i
## 10 11.433486 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 10.685316 a 1
## Fr 11.400806 b 2
## Ba 7.181185 c 3
## KK 10.692711 d 4
## LL 13.834454 e 5
## DR 11.639422 f 6
## QA 10.600267 g 7
## WW 11.390469 h 8
## FF 8.123628 i 9
## NN 11.433486 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] 10.69817
## [1] 5.5
detach(dF)
# Opção melhor
with(dF,
mean(zz))
## [1] 5.5
## [1] 7.181185 8.123628 10.600267 10.685316 10.692711
## [6] 11.390469 11.400806 11.433486 11.639422 13.834454
# -----------------------------------------------------------------------------
# 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)