sjplot sjt.corr似乎在R中的循环中看起来不错

时间:2017-11-15 03:52:36

标签: r sjplot

R的业余用户,只是在简化某些代码时遇到了困难。我有一个测试结果的数据框列表,我想在这些数据框架上运行sjt.corr函数以保证质量。

修改

一个可重复的小例子:

library(sjplot)
list <- list()
list$a <- as.data.frame(cbind(c(1,2,3,4,5,6,7,8),c(1,2,3,4,5,7,6,8)))
list$b <- as.data.frame(cbind(c(1,2,3,4,5,7,6,8),c(7,6,8,5,4,3,2,1)))
list$c <- as.data.frame(cbind(c(7,6,8,5,4,3,2,1),c(1,2,3,4,5,6,7,8)))

我不知道我的循环在哪里失败了。如果您能看到错误,请告诉我:

for (i in seq_along(list)) {
  sjt.corr(
    list[[i]],
    na.deletion = "pairwise",
    corr.method = "spearman",
    file = paste("consensus", i, "html", sep = ".")
  )
} 

似乎无声地工作,但不保存任何内容。

这有效:

sjt.corr(
  list[[1]],
  na.deletion = "pairwise",
  corr.method = "spearman",
  file = paste("consensus", 1, "html", sep = ".")
)

1 个答案:

答案 0 :(得分:0)

所以我朋友的解决方案就是使用lapply。

i <- 0

lapply(list, function(x) {
  i <<- i + 1
  sjt.corr(
    x,
    na.deletion = "pairwise",
    corr.method = "spearman",
    file = paste("consensus", i, "html", sep = "."))
})

哪个效果很好!仍然不确定为什么原始for循环不起作用。任何对其他类似场景的引用都会很棒。