Além da sugestão do PJ, você pode fazer isso com o comando stack(), reshape::melt() e plyr::adply(). Um exemplo disponível em

http://ridiculas.wordpress.com/2011/05/22/converter-dados-em-formato-amplo-e-formato-longo/

À disposição.
Walmes.

==========================================================================
Walmes Marques Zeviani
LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)
Departamento de Estatística - Universidade Federal do Paraná
fone: (+55) 41 3361 3573
VoIP: (3361 3600) 1053 1173
e-mail: walmes@ufpr.br
twitter: @walmeszeviani
homepage: http://www.leg.ufpr.br/~walmes
linux user number: 531218
==========================================================================