在函数中保存 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 摘要的主要内容,如果未能解决你的问题,请参考以下文章

Java:如何在正在保存的流上即时计算sha1摘要?

如何编辑已保存的 Tensorboard 摘要?

javascript高级程序设计摘要

如何自动保存 jmeter 摘要报告和其他图表(例如响应时间图)

project 工时界面为啥全为零,摘要分组项完成百分比不能更改。我已经保存比较基准。

增加新版本 lmer 的迭代次数?