вернуть константы обратно из логического в рендеринг на выходе

#r

#r

Вопрос:

Я хочу получить этот вывод (сначала преобразовать данные в логический вектор, затем выполнить цикл через if else, чтобы получить вывод на основе логического сравнения вектора):

 10 2 4 8 11 6 5
 10 equal to normal.
 Caution: 2 is less than normal.
 Caution: 4 is less than normal.
 8 equal to normal.
 11 equal to normal.
 6 equal to normal.
 5 equal to normal.
  

Я попробовал это:

 m3<-c(10,2,4,8,11,6,5)
m3
str(m3)
mu3<-unlist(m3, recursive = TRUE, use.names = TRUE)
n3<-as.numeric(mu3)
n3
str(n3)
dg3<-5
dg3
class(dg3)
dg1<-as.logical(dg3)
dg1
class(dg1)
dg <-(n3 >= 5)
dg
{cat (m3)}
for (r4 in dg) {
    if (r4 == dg.1) {
    cat("n", r4,"equal to normal.")
    }
    else {
    cat("n Caution: ", "is less than normal.")
    }
}
  

но я получаю:

 10 2 4 8 11 6 5
 TRUE equal to normal.
 Caution:  is less than normal.
 Caution:  is less than normal.
 TRUE equal to normal.
 TRUE equal to normal.
 TRUE equal to normal.
 TRUE equal to normal.
  

Ответ №1:

Я думаю, вы можете заменить все это на:

 cat(m3, "n", ifelse(m3 >= 5, paste(m3, "equal to normal.n"), 
                              paste("Caution:", m3, "is less than normaln")))
#> 10 2 4 8 11 6 5 
#>  10 equal to normal.
#>  Caution: 2 is less than normal
#>  Caution: 4 is less than normal
#>  8 equal to normal.
#>  11 equal to normal.
#>  6 equal to normal.
#>  5 equal to normal.

  

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

1. Большое вам спасибо! .. это сработало безупречно, я все еще заинтересован в использовании моего (для if else) цикла, возможно ли это? если да, то как? Я все еще учусь… Я ценю поддержку!