Функция R paste повторяет первый аргумент для каждого слова - PullRequest
0 голосов
/ 29 января 2019

Ниже приведен фрагмент кода, написанный для написания сообщений.Но я не понимаю, почему вывод печатается так, как показано ниже.Ожидаемый результат также предоставляется.Сначала я подумал, что текст является типом списка.Но это символьная переменная

writetext<-function(...){
   arguments <- list(...)
 if (length(arguments)>0){
   txt<- paste(arguments)
   if (length(txt)==0) return()
   strtime <- format(Sys.time(),"%I:%M:%S%p")
   txt <- paste(strtime,txt)
   message(txt)

}}

writetext("abc","efg")  
01:05:13PM abc01:05:13PM efg

Expected :
01:05:13PM abcefg

1 Ответ

0 голосов
/ 29 января 2019

Вы можете использовать paste0(txt, collapse = ""):

writetext <- function(...) {
  arguments <- list(...)
  if (length(arguments) > 0) {
    txt <- paste(arguments)
    if (length(txt) == 0) return()
    strtime <- format(Sys.time(), "%I:%M:%S%p")
    txt <- paste(strtime, paste0(txt, collapse = ""))
    message(txt)
  }
}

writetext("abc", "efg") 
# 07:13:45PM abcefg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...