r - 在R中的循环中将两个函数的输出相互粘贴
问题描述
我正在尝试将输出粘贴到输出cat
之后CrossTable
。也就是说,在每次迭代中,都会出现第一个CrossTable
输出,然后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
})
解决方案
我们可以通过将内容写入同一个文件来for
捕获输出CrossTable
并append = TRUE
在两者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”的内容
推荐阅读
- javascript - 反应选择异步获取
- python - 处理XML标签并提取对应的标签内容
- jquery - 单击复选框标签时出现问题
- ruby-on-rails - 页面刷新后如何一次保持多个复选框的真实值
- encoding - 如何在 Octave 中检测文件编码?
- javascript - “Jwplayer 不加载 ts 文件只加载 m3u8 文件”
- php - 我在使用手机登录 WordPress 仪表板时遇到问题
- angular - 角度不同的数据源到单个材料表
- cocoa - 如何在短语中本地化国家名称?
- ruby-on-rails - 如何在 Ruby on rails 中获取验证错误消息?