向量的长度包含来自 textInput 小部件的输入
Posted
技术标签:
【中文标题】向量的长度包含来自 textInput 小部件的输入【英文标题】:Length of vector contains input from textInput widget 【发布时间】:2015-05-30 06:02:45 【问题描述】:我有一个完整的 R 脚本,它将对捕获的 (readline()) 数字进行所有计算,但是我想创建带有用户界面的应用程序,但我一开始就卡住了。
我是 Shiny 的新手,我在简单计算 inputText() 小部件捕获的矢量长度时遇到问题。问题是不管vector的内容如何,length函数的结果总是1。
提前感谢您的帮助。
ui.R - 文件
library(shiny)
shinyUI(fluidPage(
titlePanel("Number App"),
sidebarLayout(
sidebarPanel("This is sidebar panel",
textInput("number", "Number:", value=""),
submitButton(text = "Submit Number", icon = NULL)
),
mainPanel("This is main panel",
textOutput("text1")
)
)
))
server.R
library(shiny)
shinyServer(function(input, output)
x <- reactive(as.numeric(input$number))
y <- reactive(strsplit(as.character(x()), ""))
z <- reactive(length(y()))
output$text1 <- renderText(
paste("Captured Number:", x(), "Splitted Number:", y(), "Length of Number: ", z())
)
)
【问题讨论】:
【参考方案1】:问题很简单,你想找到字符向量的长度,但是 strsplit 返回列表。您已经传递了单个输入字符串和模式,您可以返回列表的第一个元素(如果有)。
试试这个
library(shiny)
shinyServer(function(input, output)
x <- reactive(as.numeric(input$number))
y <- reactive(strsplit(as.character(x()), "")[[1]])
z <- reactive(length(y()))
output$text1 <- renderText(
paste("Captured Number:", x(), "\tSplitted Number:", y(), "\tLength of Number: ", z())
)
)
【讨论】:
当然!那太简单了。谢谢你的帮助。以上是关于向量的长度包含来自 textInput 小部件的输入的主要内容,如果未能解决你的问题,请参考以下文章
(Kivy/Python)当用户点击输入时从 textinput 小部件存储文本
通过 textinput 添加新项目时,阻止 QScrollArea 项目跳来跳去