在函数中保存 lmer 摘要
Posted
技术标签:
【中文标题】在函数中保存 lmer 摘要【英文标题】:Save lmer summary within a function 【发布时间】:2016-06-27 10:42:19 【问题描述】:我写了以下函数:
filename <- list.files(path = "path", pattern = ".csv", full.names = TRUE)
analyze <- function(filename)
dat <- read.csv(file = filename, header = TRUE)
twolevel <- lmer(DV ~ 1 + (1 | item), data = dat, REML = FALSE)
output <- summary(twolevel)
sink("output.txt")
for (i in 1:73) print(output)
sink()
for (f in filename)
analyze(f)
文件名包含 73 个数据帧的列表。不幸的是,我没有得到 73 次分析中每一个分析的总结,但有 73 次相同的结果。我的代码有什么问题?谢谢!!
【问题讨论】:
试着逐行运行你的代码,看看每一行发生了什么。例如,您可能打算使用sink("output.txt", append = TRUE)
,因为现在您只是一遍又一遍地重写文件。另外,你为什么要添加一个for
-loop 在同一个对象上运行print
73 次?
除了@Laterow 的评论之外,将sink("output.txt", append=T)
移动一行,然后是summary(twolevel)
。应该删除 analyze
函数中的 for
循环。
非常感谢,我忘了追加参数!
【参考方案1】:
正如@Laterow 和@nya 所讨论的,对您的功能所做的更改 -
analyze <- function(filename)
dat <- read.csv(file = filename, header = TRUE)
twolevel <- lmer(DV ~ 1 + (1 | item), data = dat, REML = FALSE)
sink("output.txt",append = TRUE)
return(summary(twolevel))
然后运行命令为
for (f in filename)
analyze(f)
【讨论】:
以上是关于在函数中保存 lmer 摘要的主要内容,如果未能解决你的问题,请参考以下文章
如何自动保存 jmeter 摘要报告和其他图表(例如响应时间图)