R:在R函数内将参数传递给glm

use*_*694 6 r function glm

我试图习惯在R中确定问题.我想在函数glm()内部调用函数,但它不起作用,显然是因为我没有设法修复函数assign()或作用的范围eval().

这是一个简化版本:

ao <- function (y, x, phi = seq (0,1,0.1), dataset, weights) {
    logLikvector <- rep(0,length(phi))  # vector of zeros to be replaced thereafter
    for (i in 1:length(phi)) {          # loop to use glm()   
        fit <- glm (y ~ x, data = dataset, family = binomial, weights = weights)         
        logLikvector[i] <- logLik(fit)      # get log likelihood
    }
    logLikvector
}
Run Code Online (Sandbox Code Playgroud)

现在我想在我的数据集上使用函数ao()

    ao (y = Prop, x = Age, dataset = mydata, weights = Total) 
Run Code Online (Sandbox Code Playgroud)

这不起作用,但以下工作:

ao (y = mydata$Prop, x = mydata$Age, dataset = mydata, weights = mydata$Total)
Run Code Online (Sandbox Code Playgroud)

有谁知道该怎么办?

任何帮助将不胜感激 !!!

顺便说一下,这里是如何用我正在使用的数据集复制我的问题

library("MASS")
data(menarche)
mydata <- menarche
mydata$Prop <- mydata$Menarche / mydata$Total
Run Code Online (Sandbox Code Playgroud)

Woj*_*ala 6

替代解决方案(@DWin建议).

function(y, x, dataset, weights){
  f <- substitute(glm(y~x, data=dataset, weights=weights, family=binomial))
  logLik(eval(f))
}
Run Code Online (Sandbox Code Playgroud)