num_trials <- 10e6
simulations <- data_frame(
true_average = rbeta(num_trials, 81, 219),
hits = rbinom(num_trials, 300, true_average)
)
hit_100 <- simulations %>%
filter(hits == 100)
dens <- function(z) dbeta(z, 81 + 100, 219 + 200)
ggplot(hit_100, aes(true_average)) +
geom_histogram(aes(y = ..density..),bins = 100) +
stat_function(color = "red", fun = dens) +
labs(x = "Batting average of players who got 100 H / 300 AB")
我了解R函数的基本知识,例如
square.it <- function(x) {
square <- x * x
return(square)
}
square.it(5)
但密度函数的不同之处在于,没有输入值
z
dens <- function(z) dbeta(z, 81 + 100, 219 + 200)
或线路
stat_function(color = "red", fun = dens)
所以我的问题是,当密度函数没有提供值时,R如何在ggplot中创建平滑函数?