Я пытаюсь написать функцию, которая использует пакет prob для вычисления условных вероятностей. При использовании функции я продолжаю сталкиваться с той же ошибкой, которая указывает, что объект внутри функции не может быть найден.Ошибка при использовании пакета «prob» в функции R
Ниже приведен воспроизводимый пример, в котором я вычисляю условную вероятность без функции, а затем пытаюсь использовать эту функцию для получения того же результата. Я не уверен, что ошибка связана с ограничениями с пакетом 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
Любая помощь, которую вы можете предоставить, будет отличной.
Спасибо!
Спасибо за ваш вопрос и спасибо за доклад на форуме об ошибке. Поиграв с ним, и теперь, читая эту дискуссию, предстоит еще большая работа. Завтра я ожидаю обновление R-Forge. –