Как указано в заголовке.
Я работаю над учебными пособиями Datacamp R и считаю, что инструкции… отсутствуют.
Одним из наиболее досадных упущений является то, что многие базовые функции никогда не определяются и не объясняются, в том числе функции print() и paste(). Иногда я могу использовать одно, а иногда другое, сейчас это кажется мне совершенно случайным.
Я рыскал по интернету в поисках четкого ответа, но не нашел.
Повторю свой вопрос:
Когда я могу использовать функцию print() и когда мне нужно вставить функцию вставки в скобках, print(paste())?
Короче говоря, у этих функций нет ничего общего, кроме того, что они являются функциями в R. Таким образом, ваш вопрос такой же, как «какая разница между дельфинами и слонами». И, кстати, у R потрясающая документация. Вы должны ввести ?paste
и ?print
в консоли, и вы получите всю необходимую информацию, включая отдельные примеры.
Если вы находитесь в консоли R, то результат любого введенного вами выражения автоматически печатается, поэтому вам не нужно указывать print
, поэтому они одинаковы:
# same when typed into the R console
32
## [1] 32
print(32)
## [1] 32
однако автоматическая печать не выполняется в сценариях R, в функциях R или в любом контексте, где она находится в теле какого-либо более крупного выражения, например, в цикле for
или while
. Таким образом, чтобы 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"
. Конечно, если вы введете команду paste
в консоли R, поскольку 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"
Вы смотрели на
help("print")
иhelp("paste")
? Страницы руководства по R могут быть сложными для новичков, но я бы все равно всегда начинал с них. Это должно помочь вам увидеть основную разницу между этими функциями, которые делают совершенно разные вещи.