Reformulando dados no R
O R oferece uma variedade de métodos para remodelar os dados antes da análise.
Transpor
Use a função t() para transpor uma matriz ou um quadro de dados. Nesse último caso, os rownames se tornam nomes de variáveis (colunas).
# example using built-in dataset
mtcars
t(mtcars)
O pacote Reshape
Hadley Wickham criou um pacote abrangente chamado reshape para massagear dados. Você pode encontrar uma introdução e um artigo. Há até um vídeo!
Basicamente, você "derrete" os dados para que cada linha seja uma combinação exclusiva de id e variável. Em seguida, você "molda" os dados derretidos em qualquer formato que desejar. Aqui está um exemplo muito simples.
mydata
id | tempo | x1 | x2 |
1 | 1 | 5 | 6 |
1 | 2 | 3 | 5 |
2 | 1 | 6 | 1 |
2 | 2 | 2 | 4 |
# example of melt function
library(reshape)
mdata <- melt(mydata, id=c("id","time"))
newdata
id | tempo | variável | valor |
1 | 1 | x1 | 5 |
1 | 2 | x1 | 3 |
2 | 1 | x1 | 6 |
2 | 2 | x1 | 2 |
1 | 1 | x2 | 6 |
1 | 2 | x2 | 5 |
2 | 1 | x2 | 1 |
2 | 2 | x2 | 4 |
# cast the melted data
# cast(data, formula, function)
subjmeans <- cast(mdata, id~variable, mean)
timemeans <- cast(mdata, time~variable, mean)
subjmeans
id | x1 | x2 |
1 | 4 | 5.5 |
2 | 4 | 2.5 |
intervalos de tempo
tempo | x1 | x2 |
1 | 5.5 | 3.5 |
2 | 2.5 | 4.5 |
Há muito mais que você pode fazer com as funções melt( ) e cast( ). Consulte a documentação para obter mais detalhes.
Indo além
Para praticar a manipulação de dados, experimente este curso sobre limpeza de dados em R.