繁体   English   中英

在 R 中循环粘贴两个函数的输出

[英]Paste outputs of two functions to each other in a loop in R

我正在尝试将cat的 output 粘贴到CrossTable output 之后。 也就是说,在每次迭代中,第一个CrossTable output 出现,然后生成cat

但是,我无法用我当前的代码实现这一点,有没有办法在 R 中实现这一点?

library(gmodels)
library(vcd)

z <- data.frame(A = rep(c('Yes','No'), 5), B = sample(c('Yes','No'), 10, replace = T), group = rep(c('Treat', 'Cont'), each = 5))

lapply(names(z)[-3], function(x){ CrossTable(z[[x]], z$group, expected = F, format="SPSS", chisq= T, prop.t = F, dnn = c(x, "Group"));
 cat(paste('cramer =', round(assocstats(table(z[[x]], z$group))[[5]], 3))) #%@ paste to `CrossTable` output
})

我们可以在从CrossTable捕获 output 并在两者中使用append = TRUE后使用for循环执行此操作capture.outputcat通过将内容写入相同的文件

for(i in 1:2) {
      capture.output(CrossTable(z[[i]], z$group, expected = FALSE,
          format="SPSS", chisq= T, prop.t = F, dnn = c(names(z)[i], "Group")), 
              file = "tempnew.txt", append = TRUE)
     cat(paste('cramer = ', round(assocstats(table(z[[i]], z$group))[[5]], 3)),
           file =  'tempnew.txt', append = TRUE, '\n')
     cat('\n\n\n********************************\n\n\n', 
                  file = 'tempnew.txt', append = TRUE, '\n')
    }

-“tempnew.txt”的内容

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM