【发布时间】:2017-07-21 02:08:54
【问题描述】:
我有以下代码
#emp bayes
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 a number
square.it(5)
## [1] 25
但密度函数的不同之处在于该行中没有为z 输入值
dens <- function(z) dbeta(z, 81 + 100, 219 + 200)
或者一行
stat_function(color = "red", fun = dens)
所以我的问题是,当没有提供密度函数值时,R 如何在 ggplot 中创建平滑函数?
【问题讨论】:
-
我猜是因为
dens()只有一个参数传入了正确的对象。