Создать динамический текст с новыми строками - PullRequest
0 голосов
/ 21 декабря 2018

Я пытаюсь создать текстовое поле для отображения текста в ggplot2.Для стилизации текста я хочу, чтобы информация была разбита на несколько строк.Вот что я пытаюсь:

txt1<-paste("Question: ", df$q1) ; txt2<-paste("Gender: ", df$gender)
txt3<-paste("response: ", df$rspns)
txt<-cat(paste(txt1, txt2, txt3, sep = "\n"))

Когда я пытаюсь напечатать txt, он отображается как NULL, потому что вывод cat не присваивается txt.Я пытался использовать capture.output(cat(paste(txt1, txt2, txt3, sep = "\n"))), но это разбивает строки на разные записи в списке.

Похоже, не существует простого решения для создания динамического многострочного текста в R. Или я что-то упустил

1 Ответ

0 голосов
/ 21 декабря 2018

Основная проблема заключается в том, что cat используется для отображения текста на экране или для вывода в текстовый файл (или другое соединение).При попытке сохранить вывод cat, например:

out <- cat("blah")

, ничего не возвращается для назначения на выход.В соответствии с файлом справки на ?cat:

Значение:

Нет (невидимо 'NULL').

paste подходит дляиспользуется для объединения строк, в том числе с разрывами строк (обозначается \n при отображении в командной строке в R).

x <- "line one"
y <- "line two"

paste(x,y,sep="\n")
#[1] "line one\nline two"

Хотя это не похоже на то, что предполагается в командной строкеи появляется все в одну строку, это на самом деле то, что вы хотите.Фактически вы можете снова использовать cat, чтобы проверить, как отформатированный вывод будет выглядеть на вашем графике в конце:

cat(paste(x,y,sep="\n"))
#line one
#line two 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...