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 转换为您请求的字符映射,方法是选择它在向量中的位置
我做了我的 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 转换为您请求的字符映射,方法是选择它在向量中的位置