В чем разница между функциями print() и print(paste()) в R?

Как указано в заголовке.

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

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

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

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

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

Вы смотрели на help("print") и help("paste")? Страницы руководства по R могут быть сложными для новичков, но я бы все равно всегда начинал с них. Это должно помочь вам увидеть основную разницу между этими функциями, которые делают совершенно разные вещи.

duckmayr 30.05.2019 15:24

Короче говоря, у этих функций нет ничего общего, кроме того, что они являются функциями в R. Таким образом, ваш вопрос такой же, как «какая разница между дельфинами и слонами». И, кстати, у R потрясающая документация. Вы должны ввести ?paste и ?print в консоли, и вы получите всю необходимую информацию, включая отдельные примеры.

David Arenburg 30.05.2019 15:46
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
609
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Распечатать

Если вы находитесь в консоли 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"

Другие вопросы по теме