【问题标题】:Printing in R studio with sprintf() does work, but not when inside a for loop?使用 sprintf() 在 R studio 中打印确实有效,但在 for 循环中无效?
【发布时间】:2021-06-23 17:56:19
【问题描述】:

当单独粘贴到命令行中时,这一直有效:

 sprintf("Your maximum allowed investment for a period of %g years in the first year equals  %g", current_nr_of_years, max_invest_year_zero_vec[current_nr_of_years])

当在脚本文件的 for 循环中运行时,这不会打印任何输出...:

loop_index_vec
for (current_nr_of_years in loop_index_vec) {
  
  sprintf("Your maximum allowed investment for a period of %g years in the first year equals  %g", current_nr_of_years, max_invest_year_zero_vec[current_nr_of_years])
  # browser()
}

【问题讨论】:

  • 您需要将wrapprintcat 作为sprintf 的返回值与print 不同

标签: r


【解决方案1】:

printsprintf 的区别在于 return 值。根据?sprintf

C 函数 sprintf 的包装器,返回包含文本和变量值的格式化组合的字符向量。

?print中的位置

print 打印它的参数并返回它不可见(通过 invisible(x))。

如果我们想在 for 循环中使用 printsprintf 包装在 printcatmessage

for (current_nr_of_years in loop_index_vec) {
  
  print(sprintf("Your maximum allowed investment for a period of %g years in the first year equals  %g", current_nr_of_years, max_invest_year_zero_vec[current_nr_of_years]))
  # browser()
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-25
    • 1970-01-01
    • 2021-09-24
    • 2012-05-13
    • 2017-07-07
    • 1970-01-01
    相关资源
    最近更新 更多