我正在使用greybox
包中的alm()
函数来拟合位置和比例模型。但是,每当我将一个变量传递给alm()
的formula =
参数时,就会出现错误。此仅发生在函数内部。它在外部工作。返回的错误是">作为.公式(表单(出错:找不到对象'form'"。下面是一个可重复的例子。有什么解决办法吗?可复制示例:
library(greybox)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
test_string = "y ~ x"
alm(as.formula(test_string), data = df)
#Passing formula to alm() works!
test_fun = function(form, df){
#alm(scaled_meaning ~ short_dis_km, data = x)
alm(as.formula(form), data = df)
}
test_fun(form = test_string, df = df)
#Passing formula to alm() does not work!
这是有效的,但它是肮脏的工作。我认为这是一个与全球环境有关的问题。如果您将表单声明为全局变量,则可以避免此问题。但它并不干净。
library(greybox)
df <- data.frame(x = rnorm(100),
y = rnorm(100))
test_string = "y ~ x"
alm(as.formula(test_string), data = df)
#Passing formula to alm() works!
test_fun = function(form, df){
#alm(scaled_meaning ~ short_dis_km, data = x)
form <<- form
f<-alm(as.formula(form), data = df)
rm(form)
f
}
test_fun(form = test_string, df = df)
#Passing formula to alm() does not work!