I often find myself doing this:
# Original data
df.test <- data.frame(value=floor(rexp(10000, 1/2)))
# Compute the frequency of every value
# or the probability
freqs <- tabulate(df.test$value)
probs <- freqs / sum(freqs)
# Create a new dataframe with the frequencies (or probabilities)
df.freqs <- data.frame(n=1:length(freqs), freq=freqs, probs=probs)
# Plot them, usually in log-log
g <- ggplot(df.freqs, aes(x=n, y = freq)) + geom_point() +
scale_y_log10() + scale_x_log10()
plot(g)
Can it be done just using ggplot
without creating an intermediate dataset?
For frequency count, you can specify the
stat
parameter ingeom_point
ascount
: