编辑:虽然这个问题与许多统计学生(特别是那些有其他编程语言经验的学生)有关,但它已被关闭。不过,给出的提示非常有用。您可以使用ifelse函数,如下所示:
https://www.googleapis.com/auth/youtube
如果你想对其他东西进行矢量化,我祝你好运。
/ EDIT
标准库中的函数将采用"数字向量"并返回数字向量,但我不知道。我如何编写qbern04以便我可以像qnorm一样使用它,而不必使用as.numeric和lapply?
qbern24 <- function(x, p) {
ifelse(x <= 0, -Inf,
ifelse(x > 0 & x <= 1-p, 0,
ifelse(x > 1-p & x <= 1, 1,
Inf)
)
)
}
答案 0 :(得分:0)
qbern <- function(x, p) {
OTHERWISE <- TRUE
dplyr::case_when(
(x <= 0) ~ -Inf,
((x > 0) && (x <= (1-p))) ~ 0,
((x > 1-p) && (x <= 1)) ~ 1,
OTHERWISE ~ Inf
)
}
qbern04 <- function(x) { qbern(x, 0.4) }
case_when()
来自dplyr
。如果您不想要这种依赖关系,那么请阅读向量化并学习使用ifelse()
,sapply()
和vapply()
,因为lapply()
旨在返回list
第