Você pode ter dados em formato amplo ou em formato longo. Isso é muito importante, pois os métodos utilizáveis são diferentes, dependendo do formato. Eu sei que você tem que trabalhar com melt()
e a cast()
partir do pacote de reformulação, mas parece que algumas coisas eu não entendo.
Alguém pode me dar uma breve visão geral de como você faz isso?
data-transformation
r
Mien
fonte
fonte
melt
ecast
. A conversão do formato amplo para o longo é feita em um estágio. Realmente não há nada mais especial.Respostas:
Existem vários recursos no site de Hadley Wickham para o pacote (agora chamado
reshape2
), incluindo um link para um artigo sobre o pacote no Journal of Statistical Software.Aqui está um breve exemplo do artigo:
Observamos que os dados estão na forma ampla. Para ir para o formato longo, tornamos o
smiths
quadro de dados fundido :Observe como
melt()
escolheu uma das variáveis como o ID, mas podemos declarar explicitamente qual usar via argumento'id'
:Aqui está outro exemplo de
?cast
:Se armazenarmos o quadro de dados fundido, podemos converter em outras formas. Na nova versão do
reshape
(chamadoreshape2
), existem funçõesacast()
edcast()
retornando um resultado do tipo matriz (matriz, matriz, vetor) ou um quadro de dados, respectivamente. Essas funções também assumem uma função agregadora (por exemplomean()
) para fornecer resumos de dados na forma fundida. Por exemplo, seguindo o exemplo de Qualidade do ar acima, podemos gerar, de forma ampla, valores médios mensais para as variáveis no conjunto de dados:Há realmente apenas duas funções principais
reshape2
:melt()
e oacast()
edcast()
emparelhamento. Veja os exemplos nas páginas de ajuda para essas duas funções, consulte o site da Hadley (link acima) e o artigo que mencionei. Isso deve começar.Você também pode examinar o
plyr
pacote de Hadley, que faz coisas semelhantes,reshape2
mas foi projetado para fazer muito mais além disso.fonte
dcast(aqm, month ~ variable)
, o que isso faria sem a função de agregação??dcast
que lhe diria isso (veja os detalhes para o argumentofun.aggregate
).O Quick-R tem um exemplo simples de como usar o pacote remodelado
Veja também
?reshape
( LINK ) o modo Base R de se mover entre os formatos amplo e longo.fonte
Você não precisa usar
melt
ecast
.Remodelar dados pode ser feito de várias maneiras. No seu exemplo particular em sua citação, usar
recast
withaggregate
era redundante porqueaggregate
a tarefa é adequada por si só.Eu gosto de como, no seu blog, você explica o que
melt
está fazendo. Pouquíssimas pessoas entendem isso e, depois que você o vê, fica mais fácil ver comocast
funciona e como você pode escrever suas próprias funções, se quiser.fonte
Veja o wiki do reshape2 . Certamente fornece mais exemplos como você poderia esperar.
fonte
Apenas observando que não há referência aos métodos de remodelagem mais eficientes e abrangentes
data.table
aqui, por isso estou postando sem mais comentários a excelente resposta de Zach / Arun no StackOverflow para uma pergunta semelhante:https://stackoverflow.com/questions/6902087/proper-fastest-way-to-reshape-a-data-table/6913151#6913151
E, em particular, há a maravilhosa vinheta na
data.table
página do GitHub:https://github.com/Rdatatable/data.table/wiki/Getting-started
fonte