我有一个很棒的应用程序,用户可以在其中定义公式,然后运行模型。但是,我想确保用户正确定义了公式。用户只会输入公式的右侧。因此,左手始终是response ~
。在将公式传递给lm
函数之前,我应该如何验证公式不会导致错误?
set.seed(123)
df <- data.frame(response = rnorm(20,35, 12), Gender =sample(c("M","F"), 20, replace = T), Temp = rnorm(20,70, 5),
Drug =sample(c("A","B","C"), 20, replace = T))
我希望检查能正确地找到右边的错误公式,如下面的公式。
语法错误:
form <- "Drug + "
form <- "Drug + Gender + Gender(Drug"
form <- "+Drug+Gender"
form <- "Drug + Gender + Gender*Drug + "
拼写错误:
form <- "drug + Gender + Drug*Gender"
以及任何其他可能性
lm(data = df, formula = paste("response ~", form))
1条答案
按热度按时间wqsoz72f1#
1)语法检查如果存在语法错误,则返回TRUE,否则返回FALSE。
2)有效变量检查返回badvar中的错误变量。如果length(badvar)〉0为TRUE,则存在错误变量,否则没有。