оператор новой строки для трех вставок0 в R

#r

#r

Вопрос:

Я хочу вставить в новую строку без кавычек, я пытался:

 a<-c(5,2,8,6,11,4,7) #assign values to a vector
n=5 #assign your optimal value
ifelse(a==n, paste0(n, " is optimal.", 'n'), ifelse(a>n, paste0(a, " is high.", 'n'), paste0("Caution: ",a," is low.", 'n')))
  

Я получил этот вывод:

 '5  is optimal. n''Caution: 2 is low.n''8 is high.n''6 is high.n''11 is high.n''Caution: 4 is low.n''7 is high.n'
  

Я хочу, чтобы этот вывод:

 5  is optimal.
Caution: 2 is low.
8 is high.
6 is high.
11 is high.
Caution: 4 is low.
7 is high.
  

Ответ №1:

Это просто проблема с печатью. Мы можем обернуть с cat

 cat(ifelse(a==n, paste0(n, " is optimal.", 'n'), 
   ifelse(a>n, paste0(a, " is high.", 'n'), 
    paste0("Caution: ",a," is low.", 'n')))
 , 'n')
  

-вывод

 # 5 is optimal.
# Caution: 2 is low.
# 8 is high.
# 6 is high.
# 11 is high.
# Caution: 4 is low.
# 7 is high.
  

Или другой вариант с glue

 library(dplyr)
glue::glue("{a} {case_when(a == n ~ 'is optimal'", 
     ", a > n ~ 'is high.', TRUE ~ 'is low.')}")
#5 is optimal
#2 is low.
#8 is high.
#6 is high.
#11 is high.
#4 is low.
#7 is high.
  

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

1. @user432797 print возвращает вывод символа и не оценивает следующую строку, возвращающую тот же вывод в вашем сообщении, без print cat wherefore не имеет возвращаемого значения. Он просто печатается на консоли

2. @user432797 существует также glue метод,

3. @user432797 Пожалуйста, проверьте мой обновленный код с помощью glue

4. @user432797 Мой вывод я обновил. Он отображает несколько строк в печати

5. @user432797 это может быть связано с оценкой новой строки в jupyter.