我正在尝试编写一个使用prob包来计算条件概率的函数。使用该函数时,我继续遇到相同的错误,即找不到函数内的对象。
下面是一个可重现的示例,其中我在没有函数的情况下计算条件概率,然后尝试使用该函数产生相同的结果。我不确定错误是由于 prob 包的限制还是我的错误。
# Load prob package
library(prob)
# Set seed for reproducibility
set.seed(30)
# Sample data frame
sampledata <- data.frame(
X <- sample(1:10),
Y <- sample(c(-1, 0, 1), 10, replace=TRUE))
# Set probability space
S <- probspace(sampledata)
# Subset Y between -1 and 0
A <- subset(S, Y>=-1 & Y<=0)
# Subset X greater than 6
B <- subset(S, X>6)
# Compute conditional probability
P <- prob(A, given=B)
上面的代码产生以下概率:
> P
[1] 0.25
尝试编写一个函数来计算相同的概率:
# Create function with data frame, variables, and conditional inputs
prob.function <- function(df, variable1, variable2, state1, state2, cond1){
s <- probspace(df)
a <- subset(s, variable1>=state1 & variable1<=state2)
b <- subset(s, variable2>cond1)
p <- prob(a, given=b)
return(p)
}
# Demonstrate the function
test <- prob.function(sampledata, Y, X, -1, 0, 6)
此函数给出以下错误:
Error in eval(expr, envir, enclos) : object 'b' not found
你能提供的任何帮助都会很棒。
谢谢!