Skip to content

variable 'openness' was fitted with type "numeric" but type "logical" was supplied #52

Description

@minahbhabib

Hello, I have been running into this weird issue where the error I am receiving does not seem to make sense. The mediator is class numeric-- it is not in any way a logic; however, when running the below code, I get the error that it is fitted with type numeric but type logic was supplied: `
mediation <-
function(dataset,
x_var,
m_var,
y_var,
m_val,
.basec,
.postc) {

m_formula <-
  as.formula(paste(m_var, "~", paste(c(
    x_var, .basec, .postc
  ), collapse = "+")))

y_formula <-
  as.formula(paste(y_var, "~", paste(c(
    m_var, x_var, .basec, .postc
  ), collapse = "+")))

postc_formula_married <-
  as.formula(paste(.postc[1], "~", paste(c(
     x_var, .basec
  ), collapse = "+")))
postc_formula_ed_cont <-
  as.formula(paste(.postc[2], "~", paste(c(
    x_var, .basec
  ), collapse = "+")))

postc_formula_obese <-
  as.formula(paste(.postc[3], "~", paste(c(
    x_var, .basec#, c(.postc[1], .postc[2])
  ), collapse = "+")))

postc_formula_cesd <-
  as.formula(paste(.postc[4], "~", paste(c(
    x_var, .basec#, c(.postc[1], .postc[2])
  ), collapse = "+")))

postc_formula_smoke <-
  as.formula(paste(.postc[5], "~", paste(c(
    x_var, .basec#, c(.postc[1], .postc[2])
  ), collapse = "+")))

postc_formula_conde <-
  as.formula(paste(.postc[6], "~", paste(c(
    x_var, .basec#, c(.postc[1], .postc[2])
  ), collapse = "+")))


est <- cmest(
  data = dataset ,
  model = "gformula",
  outcome = y_var,
  exposure = x_var,
  mediator = m_var,
  basec = .basec,
  postc = .postc,
  postcreg = list(
    eval(substitute(
      glm(
        formula = postc_formula_married,
        family = binomial(link = "logit"),
        data = dataset
      )
    )),
    
    eval(substitute(
      glm(
        formula = postc_formula_ed_cont,
        family = gaussian(),
        data = dataset
      )
    )),
    
    eval(substitute(
      glm(
        formula = postc_formula_obese,
        family = binomial(link = "logit"),
        data = dataset
      ))),
    
    eval(substitute(
      glm(
        formula = postc_formula_cesd,
        family = poisson(link = "log"),
        data = dataset
      ))),
    
    eval(substitute(
      glm(
        formula = postc_formula_smoke,
        family = binomial(link = "logit"),
        data = dataset
      ))),
    
    eval(substitute(
      glm(
        formula = postc_formula_conde,
        family = poisson(link = "log"),
        data = dataset
      )))
    
  ),
  EMint = T,
  
  mreg = list(eval(substitute(
    glm(
      formula = m_formula,
      family = gaussian(link = "identity"),
      # weights = ipcw,
      data = dataset
    )
  ))),
  
  yreg = eval(substitute(
    glm(
      formula = y_formula,
      family = gaussian(link = "identity"),
      # weights = ipcw,
      data = dataset
    )
  )),
  # multimp = TRUE,
  mval = list(m_val),
  estimation = "imputation",
  # added back 1/11/24
  inference = "bootstrap",
  # boot.ci.type = "per",
  nboot = 500
)

res <- summary(est)
mediation_results <- res$summarydf %>%
  round(3) %>%
  as.data.frame() #%>% filter(
# row.names(.) %in% c("Rcde",
#                     "Rtnde",
#                     "Rtnie",
#                     "Rte",
#                     "pm",
#                     "int",
#                     "pe"))

return(mediation_results)

}

openness_temp <- mediation(
dataset = temp_analysis_data,
x_var = "ace_index_01",
m_var = "openness",
y_var = "telomere_length",
m_val = 0,
.basec = c("age_cont_2008",
"age_squared_2008",
"male",
"race_eth_3cat",
"moth_ed_cont"
),
.postc = c(
"married_2008",
"ed_cont",
"obese_2008",
"cesd_score_2008",
"smoke_2cat_2008",
"conde_2008"
)
) `

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions