r - lapply 模型输出并总结结果
问题描述
我使用 lapply 对多个变量运行模型,现在我必须提取输出的特定部分。这是一个例子:
require(emmeans)
require(lmerTest)
mtcars$cyl <- factor(mtcars$cyl,levels=c(4,6,8),
labels=c("4cyl","6cyl","8cyl"))
dvList <- names(mtcars)[3:10]
model <- lapply(dvList, function(x) {
lm(substitute(i~cyl, list(i = as.name(x))), data = mtcars)})
all<-lapply(model,emmeans,"cyl")
我需要做的是在单个数据集中使用相应的变量名称重命名每个模型中名为“emmean”的所有列。
谢谢
解决方案
要知道的主要事情是emmeans()
产生一个类对象"emmGrid"
(不是数据框)。因此,您需要使用as.data.frame()
将其转换为可以提取一列值的形式。因此,做这样的事情:
names(all) <- dvList
tbl <- sapply(all, function(emm) as.data.frame(emm)$emmean)
tbl
结果是
disp hp drat wt qsec vs am gear
[1,] 105.1364 82.63636 4.070909 2.285727 19.13727 9.090909e-01 0.7272727 4.090909
[2,] 183.3143 122.28571 3.585714 3.117143 17.97714 5.714286e-01 0.4285714 3.857143
[3,] 353.1000 209.21429 3.229286 3.999214 16.77214 2.220446e-16 0.1428571 3.285714
推荐阅读
- algorithm - Leet代码:强盗,使用递归+备忘录
- android - 如何将我的 Firebase 数据库坐标传递给 onMapReady?
- android - Dagger 2:多模块项目,注入依赖但在运行时得到“lateinit property repository has not been initialize”错误
- spring-boot - 影响RequestMapping处理的顺序
- python - 如何在列表派生类中使用列表推导
- python - 如何更改 tkinter 中选项卡的实际背景而不是选项卡标题的背景
- python-3.x - 碰撞检测后运动停止 - Pygame
- python - 您如何添加来自多个条目的用户输入,并将它们添加在一起
- javascript - javascript生成器函数解析八进制输出问题
- xaml - 在 Xamarin 的 Flex 布局中选择换行元素