【问题标题】:Use of paste with print [duplicate]使用带有打印的粘贴 [重复]
【发布时间】:2016-09-27 15:43:36
【问题描述】:

为什么在 R 中打印与粘贴一起使用?

speed <- 31

print(paste("Your speed is", speed))
# [1] "Your speed is 31"

paste("Your speed is", speed))
# [1] "Your speed is 31"

【问题讨论】:

  • 因为paste() 生成了一个字符向量并打印了print()。仅仅因为您在调用paste() 时以交互方式看到输出并不意味着您将在非交互式脚本或函数调用中以这种方式看到它。另外,感谢@JJJ 让喊声静音。
  • 这个问题是否与stackoverflow.com/a/11533369/382936重复
  • @SethDifley:我不理解反对意见,因为我认为问题是关于 R 控制台的基本行为,并且无法理解每个完整表达式的隐含 print 调用。我确实搜索了一个重复但没有找到,但愿意提供一个近距离的锤子投票。
  • 我不确定它是否是重复的。如果不是重复的,则不应作为重复关闭。

标签: r


【解决方案1】:

当你想从一个函数中产生输出时,你必须包含 print()。例如:

x <- function(){
       speed <- 31
       paste("Your speed is", speed)
       y = 3
  }

不会打印任何东西,但这会:

x <- function(){
 speed <- 31
  print(paste("Your speed is", speed))
  y = 3
}

【讨论】:

  • 这是一个相当不完整的答案,我不确定它是否解决了这个问题。 (问题中没有function(.){.} 代码。它没有提到cat,因为它没有讨论环境。读者对底层编程模型几乎没有额外的理解,因此它没有提到“超级-分配”选项。
【解决方案2】:

R 是一种解释性语言,控制台有一个“REPL”用户界面,即一个读取-评估-打印-循环。首先评估用户输入,然后解释器查找特定于返回项目类的print-函数。您可以通过在控制台输入以下内容来查看列表(尽管它不是 R-“列表”):

 methods(print)   # it's a fairly long listing.

因此,在控制台级别围绕表达式使用 print() 与通常的 R 解释器所做的没有什么不同。另一个要熟悉的函数是cat,它有时很有用的特性是不在“打印”值周围加上引号,并且末尾没有隐式回车。许多打印方法会给出一个使用cat 构建汇总结果的缩写输出。如果您真的想查看对象中的内容,则需要使用strdput

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 2010-10-04
    • 2011-03-03
    • 2021-01-03
    相关资源
    最近更新 更多