如何通过函数的参数与R模型对象

时间:2019-01-30 16:34:16

标签: r

我想将函数参数传递给R glm模型对象。但是,由于R无法识别传递的参数,因此下面的代码似乎无法正常工作。

我不断收到错误:二进制运算符的非数字参数

grid = (cbind(c('wl', 'livingd', 'deceasedt'), c('wl_time', 'ld_time', 'dec_time')))

for (k in 1:nrow(grid)){

  f=function(y=as.name(grid[k,1]), offset=as.name(grid[k,2])){
    m=glm(y~chain_class2+sex_new+age_cat+race_new, 
                      family=poisson(link='log'), 
                      data=poissonset, 
                      offset=log(offset/12))
  }

}

有一种方法,以变量名传递给该函数?谢谢!

1 个答案:

答案 0 :(得分:0)

尝试一下:

grid = (cbind(c('wl', 'livingd', 'deceasedt'), c('wl_time', 'ld_time', 'dec_time')))

for (k in 1:nrow(grid)){

  f=function(y=as.name(grid[k,1]), offset=as.name(grid[k,2])){
    m=glm(get(y)~chain_class2+sex_new+age_cat+race_new, 
                      family=poisson(link='log'), 
                      data=poissonset, 
                      offset=log(get(offset)/12))
  }
}