R中的print()和print(paste())函数有什么区别?

时间:2019-05-30 13:16:04

标签: r

如标题中所述。

我正在研究Datacamp R教程,发现其中的说明是...。

更烦人的疏忽之一是,许多基本函数从未定义或解释过,其中包括print()和paste()函数。有时候我可以使用一个,而有时候可以使用另一个,现在对我来说这似乎是完全随机的。

我在互联网上搜寻了一个明确的答案,但很简短。

我将重申我的问题:

何时可以使用print()函数,何时必须在括号中插入粘贴函数print(paste())?

1 个答案:

答案 0 :(得分:3)

打印

如果您在R控制台上,则键入的任何表达式的结果都会自动打印出来,因此您无需指定print,因此它们是相同的:

# same when typed into the R console

32
## [1] 32

print(32)
## [1] 32

但是,不会在R脚本,R函数中或在较大表达式的主体内(例如,在forwhile循环内的任何上下文中)执行自动打印。因此,要从功能内打印32,请使用print。在这些情况下,如果不使用print,将不会打印任何内容。

f <- function() {
  print(32)
}
x <- f()
## [1] 32

for(i in 1:3) print(32)
## [1] 32
## [1] 32
## [1] 32

请注意,print打印出一个对象。如果要打印出多个对象,则可以使用多个打印语句,也可以将这些对象组合为一个较大的对象。例如,

# print A and then print B
"A"
## [1] "A"
"B"
## [1] "B"

paste("A", "B", sep = ",")  # create single char string and print it
## [1] "A,B"

c("A", "B")  # create vector of two elements and print it out
## [1] "A" "B"

还有cat

x <- "A"
y <- "B"
cat("x:", x, "y:", y, "\n")
## x: A y: B 

粘贴

paste与打印无关。它的功能是获取其参数并从中创建字符串,因此paste("A", "B")创建字符串"A B"。当然,如果您在R控制台上输入paste命令,因为R会打印出键入到其中的任何表达式的值,那么粘贴的结果将被打印出来。这是一些自动打印的示例,假定这些表达式已在R控制台中键入。

# assume these are typed into the R console

paste("A", "B")  # R automatically prints result of paste
## [1] "A B"

paste(32)  # 32 is converted to character; then R automatically prints it
## [1] "32"