R错误:“类型为“closure”的对象不可子集”

R错误:“类型为“closure”的对象不可子集”,r,object,closures,subset,R,Object,Closures,Subset,当我运行代码时,我收到以下消息。我正在尝试执行调解分析 新$meddepression中出错:“closure”类型的对象不可子集 我对编程和R非常陌生。任何帮助或建议都将不胜感激!下面是我的代码 doEffectDecomp = function(d) { d$actlim2Temp=d$actlim2 mdepression = glm(depression ~ actlim2Temp, family=binomial(), data=d) d1 = d2 = d d1$m

当我运行代码时,我收到以下消息。我正在尝试执行调解分析

新$meddepression中出错:“closure”类型的对象不可子集

我对编程和R非常陌生。任何帮助或建议都将不胜感激!下面是我的代码

doEffectDecomp = function(d)
{
  d$actlim2Temp=d$actlim2
  mdepression = glm(depression ~ actlim2Temp, family=binomial(), data=d)

  d1 = d2 = d
  d1$meddepression = d1$actlim2
  d2$meddepression = !d2$actlim2
  newd = rbind(d1,d2)

  newd$actlim2Temp = newd$actlim2
  w = predict(mdepression, newdata = newd, type='response')
  direct = ifelse(newd$depression, w, 1-w)

  newd$actlim2Temp <-  new$meddepression
  w = predict(mdepression, newdata = newd, type='response')
  indirect = ifelse(newd$depression, w, 1-w)
  newd$Wdepression = indirect/direct

  newd$W = newd$Wdepression
  cox=coxph(Surv(days_in_study, censor) ~ meddepression + actlim2, weight=W, 
 data=newd)

  TE=exp(sum(coef(cox)[c('actlim2', 'meddepression')]))
  DE=exp(unname(coef(cox)['actlim2']))
  IE=exp(sum(coef(cox)[c('meddepression')]))

  PM = log(IE)/log(TE)

  return(c(exp(coef(cox)), TE=TE, DE=DE, IE=IE, PM=PM))
}

doEffectDecomp(d)
提前感谢您的帮助


Simran

代码中有一个输入错误,我漏了一个d。new$meddepression应该是newd$meddepression


非常感谢您的所有输入,非常感谢。

您应该考虑对您的代码进行记录/评论。这有点难读/难以理解。我怀疑是因为输入错误,缺少了d,也没有提供“sessionInfo”。错误消息说,解释器试图获取一个S4对象,它认为这是一个函数。您正在尝试对新函数进行子集。非常感谢您的所有输入。原来我缺了一个d,就像你怀疑的42-。这是一个救命恩人,再次感谢!打字错误也是我的问题。