最后我放弃了,承认我需要帮助,我有一个3个不同组的数据集,在2个时间点测量,49个结局变量,我想对每个结局变量做一个混合线性回归分析,以获得时间点之间的组内变化,如下表所示:
| 身份证|兰德|拜访|x1| x2| ...|
| - ------|- ------|- ------|- ------|- ------|- ------|
| 1个|无|无|一百七十八|五、二||
| 第二章|无|无|一百六十五|不适用||
| 三个|第二章|无|一百四十二|一、三||
| 四个|1个|无|一百九十八|二、七||
| 1个|无|1个|一百九十一|九、五||
| 第二章|无|1个|一百八十三|三、九||
当然,我不希望手动完成所有的147次分析(尽管在这个阶段,它会节省我很多时间)。
所以,在搜索论坛寻找答案后,这是我迄今为止所尝试的:
library(lme4)
library(lmerTest)
library(tidyverse)
df <- data.frame(
id = rep(1:66, each = 2),
visit = 0:1,
rand = rep(0:2, each = 2),
x1 = sample(4000:9000, 132),
x2 = sample(1200:3400, 132),
x3 = sample(220:400, 132)
)
df_rand0 <- df %>%
filter(rand == "0")
df_rand1 <- df %>%
filter(rand == "1")
df_rand2 <- df %>%
filter(rand == "2")
depVarList <- colnames(df_rand0[4:6])
allModels <- lapply(depVarList, function(x){
lmer(formula = paste0("`", x, "` ~ visit + (1| id)"),
data = df_rand0, na.action = na.omit)
})
它确实生成了一个结果列表,但我缺少p值,它生成了一个包含49个变量的大列表。我希望获得更好的概述,并从测试中获得p值。我尝试加载tidymodels包并运行tidy()
,但它返回“Error:此列表没有公认的整洁方法。”
1条答案
按热度按时间plicqrtu1#
mixed为混合模型提供tidiers。您也可以使用
purrr::map_dfr()
代替lapply()
来获取一个 Dataframe 中的所有系数。