DF = data.frame( city=c( 'A', 'B', 'C', 'D' ), abc=c( 19.7, 18.6, 19.1, 17.9 ), cbs=c( 16.1, 15.8, 14.6, 17.1 ), nbc=c( 18.2, 17.9, 15.3, 18.0 ) ) library(reshape2) DF_melt = melt(DF, id.vars=c('city'), value.name='share', variable.name='network')