gpt4 book ai didi

r - Shiny - 将文本输入纳入辅助功能

转载 作者:行者123 更新时间:2023-12-01 01:04:20 25 4
gpt4 key购买 nike

我是 Shiny 的新手,并试图为我构建的函数构建更易于访问的输入和输出。我把这个给那些不运行 R 的人,所以试图构建一些在后台运行我的函数然后吐出答案的东西。

不幸的是,我在按照我想要的方式获取所有内容并处理一堆错误时遇到了一些麻烦。但是,这是我更尖锐的问题:

我要运行的实际函数需要一个名称(在引号中为“Last,First”)和一个数字。

PredH("Last,First",650)

所以我想要一个 Shiny 的应用程序,它接受一个名称输入和一个数字输入,然后运行这个程序,然后用我的答案吐出一个数据表。所以有几个问题。

我如何以正确的形式将它输入到服务器端脚本的方程中,我是否需要在函数中返回它以便可以使用 function$table 类型访问来访问它? (现在我只是在控制台中使用 cat() 函数打印该函数,但知道这可能不适用于此类应用程序。

我想返回一个可以在 PredH14$table 中获取的数据帧。我如何去 build 那个 Shiny 的?

到目前为止,这是我的代码:

用户界面:
library(shiny)


shinyUI(pageWithSidebar(

# Application title
headerPanel("Miles Per Gallon"),

# Sidebar with controls to select the variable to plot against mpg
# and to specify whether outliers should be included
sidebarPanel(
textInput("playername", "Player Name (Last,First):", "Patch,Trevor"),
radioButtons("type", "Type:",
list("Pitcher" = "P",
"Hitter" = "H"
)),

numericInput("PAIP", "PA/IP:", 550),
submitButton("Run Comparables")


),
mainPanel(
textOutput("name")
)

服务器:
library(shiny)

shinyServer(function(input, output) {

sliderValues <- reactive({


data.frame(
Name = c("name", "PA"),

Value = c(as.character(playername),
PAIP),

stringsAsFactors=FALSE)
})

name=input[1,2]
PAIP=input[2,2]
testing <- function(name,PAIP){
a=paste(name,PAIP)
return(a) }
output$name=renderText(testing$a)


})

最佳答案

我不太确定我是否 100% 理解您的问题,但我清楚地看到您想知道如何将 UI 的输入传递到服务器,或者反过来。

在您的服务器代码中,显然您没有从 UI 获得任何输入。基本上,您已经在 ui.R 中创建了三个输入变量。 :

1. input$playername
2. input$type
3. input$PAIP

和一个输出:
1. output$name

让你知道,函数 sliderValues <- reactive(..)每次有来自输入的任何输入时都会调用......就像人们单击下拉列表或人们修改文本框中的单词一样。
您甚至可以在没有 submit button 的情况下开始使用只是为了开始。但是提交按钮的存在实际上让一切变得更容易。 Create a submit button for an input form. Forms that include a submit button do not automatically update their outputs when inputs change, rather they wait until the user explicitly clicks the submit button.
所以你可以像这样放置你的代码:
# server.R
library(shiny)
shinyServer(function(input, output) {

sliderValues <- reactive({
result <- ... input$playername ... input$type ... input$PAIP
return(result)
})

output$name <- renderPlot/renderText (... sliderValues...)
})

# ui.R
library(shiny)

shinyUI(pageWithSidebar(

headerPanel("Miles Per Gallon"),

sidebarPanel(
textInput("playername" ... ),
radioButtons("type" ... ),
numericInput("PAIP" ... ),
submitButton("...")
),

mainPanel(
textOutput/plotOutput...("name")
)
))

最后,查看可能是您想要的 Shiny 示例。
library(shiny)
runExample('07_widgets')

关于r - Shiny - 将文本输入纳入辅助功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com