[英]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.output
和cat
通过将内容写入相同的文件
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.