gpt4 book ai didi

r - 运行R函数时如何为每个图暂停

转载 作者:行者123 更新时间:2023-12-04 05:03:22 25 4
gpt4 key购买 nike

首先,您需要effectslme4用于运行以下脚本的软件包

library(effects)
library(lme4)

我有以下脚本
 devAskNewPage(ask=TRUE)

fm8 <- lmer(Reaction ~ 1 + Days + (1 + Days|Subject), sleepstudy,
REML = 0, verbose = TRUE)
plot(effect("Day",fm8))
qqmath(ranef(fm8))

如果我手动运行脚本,R 会询问 Click or ENTER for next page在每个图表之后。但是当我运行以下函数时,
somefunc<-function () 
{
devAskNewPage(ask=TRUE)
fm8 <- lmer(Reaction ~ 1 + Days + (1 + Days|Subject), sleepstudy,
REML = 0, verbose = TRUE)
plot(effect("Day",fm8))
qqmath(ranef(fm8))

}

R只问 Click or ENTER for next page对于最后一个情节。我怎样才能让它询问函数中的每个图?

最佳答案

如果将它们绘制在一起是可以接受的,你可以试试这个:

library(gridExtra)
somefunc<-function ()
{
fm8 <- lmer(Reaction ~ 1 + Days + (1 + Days|Subject), sleepstudy,
REML = 0, verbose = TRUE)
p1 <- plot(effect("Day",fm8))
p2 <- qqmath(ranef(fm8))$Subject
class(p1) <- 'trellis'
grid.arrange(p1,p2,nrow = 2)
}

效果包与结果图的类混淆,混淆 grid.arrange ,所以我不得不把它改回来。我觉得 grid.arrange应该更聪明。

我只能推测 devAskNewPage 出了什么问题. effect绘制代码非常精细。它很有可能以覆盖该设置的方式操纵图形设备。

编辑

我有点惊讶,但 Ben Bolker 的评论是正确的(即这是 R FAQ 7.22 的版本/示例,“为什么格子/格子图形不起作用?”,因为 effects 包在内部调用 lattice::xyplot) .这按照 OP 的要求工作:
somefunc<-function () 
{
devAskNewPage(ask=TRUE)
fm8 <- lmer(Reaction ~ 1 + Days + (1 + Days|Subject), sleepstudy,
REML = 0, verbose = TRUE)
p1 <- plot(effect("Day",fm8))
p2 <- qqmath(ranef(fm8))$Subject
print(p1)
print(p2)
}

关于r - 运行R函数时如何为每个图暂停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15843243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com