Чи є спосіб надрукувати текст і змінні вмісти в одному рядку? Наприклад,
wd <- getwd()
print("Current working dir: ", wd)
Я не міг знайти нічого про синтаксис, який би дозволив мені це зробити.
Чи є спосіб надрукувати текст і змінні вмісти в одному рядку? Наприклад,
wd <- getwd()
print("Current working dir: ", wd)
Я не міг знайти нічого про синтаксис, який би дозволив мені це зробити.
Відповіді:
Ви можете використовувати paste
зprint
print(paste0("Current working dir: ", wd))
або cat
cat("Current working dir: ", wd)
cat()
я отримую a NULL
в кінці :(
print(cat("test", var))
що має бутиcat("test", var)
{glue} пропонує набагато кращу інтерполяцію рядків, дивіться іншу мою відповідь . Також, як справедливо зазначає Дайніс,
sprintf()
не без проблем.
Також є 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))
sprintf
не друкується, він просто форматує рядок. Щось на зразок друку (sprintf (...)) необхідно в сценаріях.
Або за допомогою message
message("Current working dir: ", wd)
Відповідь @ agstudy тут більше підходить
Найпростіший спосіб зробити це - використовувати 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()
Пакет {glue} пропонує рядкову інтерполяцію. У прикладі {wd}
підміняється вміст змінної. Складні вирази також підтримуються.
library(glue)
wd <- getwd()
glue("Current working dir: {wd}")
#> Current working dir: /tmp/RtmpteMv88/reprex46156826ee8c
Створено 2019-05-13 пакетом reprex (v0.2.1)
Зверніть увагу, як друкований вихід не містить [1]
артефактів і "
лапок, для яких використовуються інші відповіді cat()
.
Як казали інші користувачі, cat () - це, мабуть, найкращий варіант.
@krlmlr запропонував використовувати sprintf () і наразі це відповідь третьої позиції. sprintf () - непогана ідея. З R документації:
Рядок формату передається за допомогою функції sprintf ОС, і неправильні формати можуть призвести до того, що останній руйнує процес R.
Немає вагомих причин використовувати sprintf () над котом чи іншими параметрами.
sep = ''
або отримаєте додатковий простір.