В чем разница между функциями print () и print (paste ()) в R? - PullRequest
0 голосов
/ 30 мая 2019

Как указано в названии.

Я сам прорабатываю учебные пособия по Datacamp R и считаю, что инструкции ... отсутствуют.

Один из самых досадных недостатков заключается в том, что многие основные функции никогда не определяются и не объясняются, в том числе функции print () и paste ().Иногда я могу использовать одно, а другое - другое, сейчас мне это кажется совершенно случайным.

Я искал в интернете в поисках четкого ответа, но потерпел неудачу.

Я повторю свой вопрос:

Когда я могу использовать функцию print () и когда мне нужно вставить функцию вставки в круглые скобки, print (paste ())?

1 Ответ

4 голосов
/ 30 мая 2019

печать

Если вы находитесь в консоли 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 или объединить объекты в один более крупный объект. Например,

# 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...