Как напечатать несколько строк строк (или любых символов) в R?

#r

#r

Вопрос:

Я просто хочу напечатать несколько строк символов aestrick во время выполнения кода. Я могу использовать print(strrep("*",20)) для печати одной строки из 20 * , но как я могу напечатать 20 строк из них без использования каких-либо циклов?

Комментарии:

1. rep(strrep("*",20),20) выдает вам 20 строк по 20 символов в каждой. Если они вам нужны в отдельных строках, как насчет cat(paste(rep(strrep("*",20),20),collapse="n")) ?

2. @r2evans Это работает. Спасибо

Ответ №1:

Здесь показан литерал «как мне повторить»:

 rep(strrep("*",5),4)
# [1] "*****" "*****" "*****" "*****"
  

Если вы намереваетесь предварительно напечатать все это последовательно на консоли, то

 paste(rep(strrep("*",5),4), collapse="n")
# [1] "*****n*****n*****n*****"
cat(paste(rep(strrep("*",5),4), collapse="n"))
# *****
# *****
# *****
# *****
  

где последний cat использует это напрямую. Обратите внимание, что cat это не добавляет последнюю новую строку; если вам это нужно, то сделайте cat(..., "n") .

Однако вы могли бы рассмотреть возможность использования message вместо cat :

 message(paste(rep(strrep("*",5),4), collapse="n"))
# *****
# *****
# *****
# *****
  

Для этого не требуется завершающий символ новой строки, как cat это делает (хотя вы можете подавить завершающий LF с помощью appendLF=FALSE ). Это позволяет любому, кто использует вашу функцию, подавлять эти сообщения с помощью suppressMessages(...) , что часто приятно для авторов функций.

Ответ №2:

Это может помочь. Функция напечатает любое количество строк, которое вы хотите.

   fun<-function(x){
  rep(paste(strrep("*",20),sep = "n"),x)}

  fun(20)
  

Всего за 20 раз вы могли бы использовать:

 rep(paste(strrep("*",20),sep = "n"),20)
  

Надеюсь, это поможет.