Вывести содержимое строки и переменных на одной строке в R

148

Есть ли способ распечатать текст и содержимое переменных в одной строке? Например,

wd <- getwd()
print("Current working dir: ", wd)

Я не мог найти ничего о синтаксисе, который позволил бы мне это сделать.

Теги:
printing

6 ответов

236
Лучший ответ

Вы можете использовать paste с print

print(paste0("Current working dir: ", wd))

или cat

cat("Current working dir: ", wd)
  • 8
    Вы, вероятно, захотите sep = '' или получите дополнительный пробел.
  • 6
    Используя cat() я получаю NULL в конце :(
Показать ещё 1 комментарий
51

Там также sprintf():

sprintf("Current working dir: %s", wd)

Для вывода на консольный вывод используйте cat() или message():

cat(sprintf("Current working dir: %s\n", wd))
message(sprintf("Current working dir: %s\n", wd))
  • 0
    Еще один приятный вариант! Это очень похоже на другие языки сценариев и очень удобно, если у вас есть текст, в котором вы хотите реализовать несколько переменных. Спасибо!
  • 1
    безусловно, самый удобный вариант, особенно если вы составляете аргумент функции. с пастой это быстро становится нечитаемым беспорядком.
Показать ещё 1 комментарий
17

Или используя message

message("Current working dir: ", wd)

@agstudy ответ более подходит здесь

12

Самый простой способ сделать это - использовать paste()

> paste("Today is", date())
[1] "Today is Sat Feb 21 15:25:18 2015"

paste0() приведет к следующему:

> paste0("Today is", date())
[1] "Today isSat Feb 21 15:30:46 2015"

Обратите внимание, что между строкой и x нет разделителя по умолчанию. Использование пробела в конце строки - это быстрое исправление:

> paste0("Today is ", date())
[1] "Today is Sat Feb 21 15:32:17 2015"

Затем объедините любую функцию с print()

> print(paste("This is", date()))
[1] "This is Sat Feb 21 15:34:23 2015"

или

> print(paste0("This is ", date()))
[1] "This is Sat Feb 21 15:34:56 2015"

Как заявили другие пользователи, вы также можете использовать cat()

6

Как и другие пользователи, cat(), вероятно, лучший вариант.

@krlmlr предложил использовать sprintf(), и в настоящее время это третий рейтинг. sprintf() не очень хорошая идея. Из документации R:

Строка формата передается по функции ОС sprintf, а неправильные форматы могут привести к сбою процесса R.

Нет веских оснований использовать sprintf() над cat или другими параметрами.

0

Вы можете использовать метод paste0 или cat, чтобы объединить строку со значениями переменной в R

Например:

paste0("Value of A : ", a)

cat("Value of A : ", a)
  • 0
    печать не очень нужна.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню