Конкатенация и вставка в консоли R с помощью cat () и paste () - PullRequest
0 голосов
/ 25 октября 2018

Вероятно, есть очень простое решение моей проблемы, но мне, кажется, не хватает его.

У меня есть следующее

p <- 0.95

, и я хочу отобразить результат в консоли R.

Я пробовал

> cat("It is", p*100, "% accurate")

> cat("It is", p*100, paste("%", sep = ""), "accurate")

но я получаю пробел между числом и%

> cat("It is", p*100, "% accurate")
The classifier 95 % accurate

> cat("It is", p*100, paste("%", sep = ""), "accurate")
The classifier 95 % accurate

Окончательный результат должен быть

The classifier is 95% accurate

Не уверен, как решить эту проблему, прочитав документацию

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Просто переместите расчет внутрь

cat("It is", paste0( p*100, "%"), "accurate")

paste0 - это сокращение для sep = "".

Библиотека клея также очень хороша для этого:

library(glue)

cat("It is", glue("{p*100}%"), "accurate")
0 голосов
/ 25 октября 2018

Это sep, что помогает:

cat("It is ", p * 100, "% accurate", sep = "")
# It is 95% accurate

, где sep -

символьный вектор строк для добавления после каждого элемента.

со значением по умолчанию " ", отсюда и пробел.Это самое короткое решение, хотя в качестве альтернативы вы могли бы действительно использовать sprintf или paste, как предложил @Hanjo Jo'burg Odendaal.

...