在基本闪亮数据表中创建一个接受数字输入的列

时间:2015-11-09 01:48:31

标签: r shiny

我在server.R

中有以下内容
library(shiny)

# Load the ggplot2 package which provides
# the 'mpg' dataset.
library(ggplot2)

# Define a server for the Shiny app
shinyServer(function(input, output) {

# Filter data based on selections
output$table <- renderDataTable({
data <- as.data.frame(98,99,34)
names(data) <- "Projection"
data
})

以下是ui.R     库(有光泽)

# Define the overall UI
shinyUI(
fluidPage(
titlePanel("Basic DataTable"),



# Create a new row for the table.
fluidRow(
  dataTableOutput(outputId="table")
)    
)  
)

是否可以向数据数据框添加一个列,该数据框是一个numericInput,如果用户不同意,则可以修改投影。像这样:

投影您的投影

98 | _____________ | &lt; - 数字输入进入那里,然后投影更新

1 个答案:

答案 0 :(得分:1)

这不是你想要的,但它应该工作。我还添加了一个global.r,以便您拥有可以在ui.r和server.r上使用的数据帧。

<强> ui.r

shinyUI(
  fluidPage(
    titlePanel("Basic DataTable"),



    # Create a new row for the table.
    fluidRow(
      selectInput("select", label = h3("Select box"), 
                  choices = unique(data$Projection), 
                  selected = unique(data$Projection)[1]),
      numericInput("num", label = h3("Numeric input"), value = unique(data$Projection)[1]),
      submitButton(text = "Apply Changes", icon = NULL),
      dataTableOutput(outputId="table")
    )    
  )  
)

<强> server.r

library(shiny)

# Load the ggplot2 package which provides
# the 'mpg' dataset.

# Given that you are not plotting this line is
### useless library(ggplot2)

# Define a server for the Shiny app

    shinyServer(function(input, output) {

      # Filter data based on selections
      output$table <- renderDataTable({
        data$User_Prediction[data$Projection==input$select] <<- input$num
        data
      })
    })

<强> global.r

data <- as.data.frame(c(98,99,34))
names(data) <- "Projection"
data$User_Prediction <- 0

重要的是要注意&lt;&lt; - 将应用于函数之外的数据框,这允许您编辑全局数据框。