Shiny 将数字转换为字符

Shiny Convert number into character

我做了我的 Shiny 应用程序:


library(shiny)
library(shinythemes)

ui <- fluidPage(
  theme=shinytheme("superhero"),
  sidebarLayout(
    sidebarPanel(
      numericInput(
        "num1", 
        label = h3("Numeric input1"), 
        value = 1,
        min = 1,
        max = 9,
        ),  
      numericInput(
        "num2", 
        label = h3("Numeric input2"), 
        value = 1,
        min = 1,
        max = 9,
      ), 
      numericInput(
        "num3", 
        label = h3("Numeric input3"), 
        value = 1,
        min = 1,
        max = 9,
      ),
      selectInput("number", label = h3("Character input"),
                  choices = list("A" = 1, "B" = 2, "C" = 3, "D" = 4, "E" = 5,
                                 "F" = 6, "G" = 7, "H" = 8, "I" = 9, "J" = 10,
                                 "K" = 11, "L" = 12, "M" = 13, "N" = 14, 
                                 "O" = 15, "P" = 16, "Q" = 17, "R" = 18,
                                 "S" = 19, "T" = 20, "U" = 21, "V" = 22, 
                                 "W" = 23, "X" = 24, "Y" = 25, "Z" = 26,
                                 "," = 27, "." = 28, "SPACE" = 29),
                  selected = 1),
    ),
    mainPanel(
      h3(textOutput("Numbers")),
    )
  )
)

server <- function(input, output) {

  x <-reactive(
                (as.numeric(input$number)*(as.numeric(input$num1)*as.numeric(input$num2)*as.numeric(input$num3)))%%29+1
               )
  

  output$Numbers <- renderText(paste("Number:", 
                                             x())) 

}

shinyApp(ui, server)

现在我想将 x 转换为字符,使用与 selectInput 相同的规则 1 转换为 A,2 转换为 B,等等,26 转换到 Z,27 转换为“,”,28 转换为“。”和 29 转换为单词“SPACE”,我不知道该怎么做。我试过使用

p = as.numeric(substr(x, start=1, stop=29))

print(paste0(LETTERS[p]))

但我不知道如何将其实现到代码中。

尝试将此添加到您的 renderText() 函数中:c(LETTERS,”,”,”.”,”SPACE”)[as.numeric(x())]

这会将数字 x() 值 1 到 29 转换为您请求的字符映射,方法是选择它在向量中的位置