How to plot histogram/ frequency-count of a vector with ggplot?

The reason you got an error - is the wrong argument name. If you don't provide argument name explicitly, sequential rule is used - data arg is used for input vector.

To correct it - use arg name explicitly:

ggplot(mapping = aes(dice_results)) + geom_bar()

You may use it inside geom_ functions familiy without explicit naming mapping argument since mapping is the first argument unlike in ggplot function case where data is the first function argument.

ggplot() + geom_bar(aes(dice_results))

Use geom_histogram instead of geom_bar for Histogram plots:

ggplot() + geom_histogram(aes(dice_results))

Don't forget to use bins = 5 to override default 30 which is not suitable for current case:

ggplot() + geom_histogram(aes(dice_results), bins = 5)

qplot(dice_results, bins = 5) # `qplot` analog for short

To reproduce base hist plotting logic use breaks args instead to force integer (natural) numbers usage for breaks values:

qplot(dice_results, breaks = 1:6)

Try the code below

library(ggplot2)    
dice_results <- c(1,3,2,4,5,6,5,3,2,1,6,2,6,5,6,4,1,3,2,4,6,4,1,6,3,2,4,3,4,5,6,7,1)
ggplot() + aes(dice_results)+ geom_histogram(binwidth=1, colour="black", fill="white")

Please look at the help page ?geom_histogram. From the first example you may find that this works.

qplot(as.factor(dice_results), geom="histogram")

Also look at ?ggplot. You will find that the data has to be a data.frame