在 Dataframe 中存储的多个列上运行lmer的问题

2ic8powd  于 2023-05-20  发布在  其他
关注(0)|答案(1)|浏览(70)


I具有包含10名受试者的 Dataframe ,其中每名受试者在第0年和第1年重复进行5次多Angular 移动测量。整个数据是长格式的,我试图找到第0年和第1年之间的差异,因为每个受试者都有多个测量值,我试图使用lmer函数。
我使用了下面的代码,但不断得到一个错误。任何帮助将不胜感激。

# define the formula for lmer
lmer_formula <- formula(". ~ year + (1|subject)")

# define the function to apply lmer to each column in a data frame
lmer_function <- function(df, cols) {
  lmer_results <- list()
  for (col in cols) {
    col_formula <- as.formula(paste(col, deparse(lmer_formula)[2], sep = "~"))
    lmer_result <- lmer(col_formula, data = df)
    lmer_results[[col]] <- lmer_result
  }
  return(lmer_results)
}

# apply the lmer function to each data frame in the list for all columns
cols <- names(FAI_amb_Study)[7:length(names(FAI_amb_Study))]
lmer_results <- lmer_function(df = FAI_amb_Study, cols = cols)

formula(formula,data = data):ExtractVars中的模型公式无效

deikduxw

deikduxw1#

refit是一种方便(且更快)的方法,可以用不同的响应变量重新拟合模型,前提是模型的其余部分相同。

## set up structure for results
lmer_results <- list()
## response variables to consider
cols <- names(FAI_amb_Study)[7:ncol(FAI_amb_Study)]
## formula for first model
form1 <- reformulate(c("year","(1|subject)"), response = cols[1])
## fit first model
lmer_results[[1]] <- lmer(form1, data = FAI_amb_Study)
for (i in 2:length(cols)) {
  ## refit first model with successive columns as response
  lmer_results[[i]] <- refit(lme_results[[1]], 
                             FAI_amb_study[[cols[i]]])
}

相关问题