用于在循环中创建结果的打印命令

时间:2018-03-09 00:56:11

标签: r loops printing

假设我有以下循环:

test <- mtcars
target_var <- c("mpg", "wt")
group_var <- c("gear", "carb")

library(tidyverse)

for (i in target_var) {
  for (j in group_var) {

print(prop.table(table(test[, i], test[, j]), 2))
  }
}

当我运行它时,我看到报告了四个prop.tables,每个都有[1]到[[4]]的标题。通过查看代码并查看分配给target_var和group_var的变量的顺序,我可以在视觉上匹配哪个prop.table与哪些变量相关。

但是,假设我正在循环使用十几个或更多变量。显然,将一个特定的prop.table(列为,[,[[14]]“)与该表中的实际变量相匹配是一个问题。

有没有办法打印用于生成每个特定表的命令R?

我不是在寻找progress bar,而是在列出控制台中打印的每个表格上方的代码。例如,以下代码将打印在相应的prop.table上方:

prop.table(table(test$mpg, test$gear), 2)
# actual prop.table result from the first time through the loop here

prop.table(table(test$mpg, test$carb), 2)    
# actual prop.table result from the second time through the loop here

这可以帮助我进行探索性数据分析。

1 个答案:

答案 0 :(得分:0)

如果我理解得很好,你想要“随时”打印函数的结果(即在循环的每次迭代中,而不是在结束时)?

您可以使用cat代替print(请务必在致电\n后打印新行cat以避免混乱的控制台):

for(i in 1:3) {
    results <- mean(rnorm(10))
    cat(results)
    cat("\n")
}