Using a barplot
and the example data, something like this might work:
barplot(
with(dat,prop.table(table(feel,grade))),
beside=TRUE,
xlab="Grade",
ylab="% Feeling Within Grade Group",
col=grey((1:5)/5)
)
legend("topright",as.character(feelops),fill=grey(1:5/5))
You can play around with the options a bit, but this will give something like: