R barchart apilado con datos agregados

Tengo problemas para crear un gráfico de barras apiladas con datos agregados. Cuando trato con tablas agregadas de los informes de otras personas, generalmente uso Excel, pero me gustaría comenzar a hacer todos mis gráficos en R, posiblemente con celosía o ggplot. En Excel, hacer un gráfico de barras apiladas de los siguientes datos agregados requiere un par de clics (Insertar, Gráficos de columnas, Columnas apiladas) y obtendrá algo como esto..

Además de querer este gráfico en R, también quiero usar el facetado de ggplot, es decir. ponga dos gráficos de barras apilados uno al lado del otro en ggplot para comparar dos grupos (A y B). He jugado con otros gráficos y esta parece ser la mejor opción. Estos son los datos. El gráfico de Excel solo muestra el grupo A (los números son porcentajes).

D<-as.data.frame(structure(list(Group = c("A", "A", "A", "A", "A", 
"A", "B", "B", "B", "B", "B", "B"
), Education = c("NVQ Level 4 and above", "NVQ Level3", "NVQ Level 2", 
"Below NVQ Level 2", "Other qualification", "No qualification", 
"NVQ Level 4 and above", "NVQ Level3", "NVQ Level 2", "Below NVQ Level 2", 
"Other qualification", "No qualification"), Full.Time = c(47, 
27, 23, 17, 18, 9, 36, 26, 22, 22, 27, 12), PT.16.hours = c(20, 
24, 22, 18, 18, 12, 22, 21, 21, 22, 14, 10), PT.16.hours.1 = c(12, 
11, 10, 11, 13, 5, 24, 25, 25, 20, 16, 12)), .Names = c("Group", 
"Education", "Full.Time", "PT>16.hours", "PT<16.hours")))

Antes de llegar a las facetas para mostrar la diferencia en los dos grupos, en realidad tengo problemas para crear un único gráfico de barras apiladas (como el de arriba) con ggplot2. Supongo que no debería tener 3 variables (FullTime, PT, PT> 16 horas), sino filas individuales para cada caso, así que en lugar de tener

A    NVQ Level 4 and above      47  20  12
A    NVQ Level3                 27  24  11

yo debería

Group          Education    Work     Percentage
A   NVQ Level 4 and above   Full Time   47
A   NVQ Level 4 and above   PT>16 hours 20

Si esta es la única forma de hacer que ggplot haga el gráfico, ¿cómo cambiaría de un formato a otro con unas pocas líneas de código? A menudo encuentro este tipo de datos, por lo que sería bueno tener un procedimiento estandarizado. También he jugado con la opción 'identidad' de ggplot pero no he tenido mucho éxito.

Cualquier ayuda sería muy apreciada.

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta