Как печатать в одной строке на языке R - PullRequest
0 голосов
/ 07 мая 2019

Я делал несколько HandOn в R:

toppers <- sample(80:100, 5)
s <- ifelse(toppers>90,"best class", "needs improvement")

Мне нужно напечатать s в одной строке.Как я могу это сделать?

Факт:

[1] "best class"        "needs improvement" "needs improvement"
[4] "needs improvement" "needs improvement"

Ожидаемый:

[1] "best class"        "needs improvement" "needs improvement"  "needs improvement" "needs improvement"

1 Ответ

2 голосов
/ 07 мая 2019

Ваш «ожидаемый» вывод неоднозначен, поэтому я дам различные ответы, чтобы охватить все основы.

Во-первых, если вы заинтересованы только в получении этого точного формата в интерактивном сеансе, вы можете просто сказатьR, чтобы использовать большую ширину линии, чтобы она не переносилась:

> options(width=9999)

После вызова этого объекты, напечатанные в цикле read-eval-print по умолчанию, будут отображаться в одной строке, пока не достигнут длиныиз 9999:

> s
[1] "needs improvement" "needs improvement" "needs improvement" "best class"        "needs improvement"

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

> cat(s)
needs improvement needs improvement needs improvement best class needs improvement

Обратите внимание, что удаляет кавычки.Если вы хотите сохранить кавычки вокруг каждой строки в выводе, мы можем использовать deparse().Мы также будем использовать sapply() для отмены каждой строки в отдельности, в противном случае она будет помещать нежелательный c() вокруг всего этого:

> cat(sapply(s, function(word) deparse(word)), collapse=' ')
"needs improvement" "needs improvement" "needs improvement" "best class" "needs improvement"

Выше все еще печатается непосредственно в консольный стандартный вывод.Если вы хотите сохранить объединенную строку в переменной, мы можем использовать paste0() вместо cat():

> x <- paste0(sapply(s, function(word) deparse(word)), collapse=' ')
> cat(x)
"needs improvement" "needs improvement" "needs improvement" "best class" "needs improvement"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...