繁体   English   中英

server.R未定义的列?

[英]server.R undefined columns?

我正在尝试创建R Shiny应用程序,并遇到以下错误:

Error in `[.data.frame`(dataset.temp, , input$col) : 
  undefined columns selected

我不确定是什么原因造成的,希望有人可以帮助我解决这个问题。 这是一个示例代码:

用户界面

shinyUI(fluidPage(
  titlePanel("Data"),
  sidebarLayout(
    sidebarPanel(
      textInput("from","Missing",
                value="Enter characters"),
      textInput("to","Missing",
                value="Enter characters"),
      selectInput("col","Select Column",
                  choices = c(1:6),
                  selected=1)),
    mainPanel(
      tableOutput('contents')
    )
  )
))

服务器

library(DT)
file <- read.csv("file.csv")
shinyServer(function(input, output) {
dataset.temp <- file
output$contents <- renderTable({
dataset.temp[,input$col] <- gsub(input$from,input$to,dataset.temp[,input$col])
    dataset.temp
  })
})

有什么想法吗?

我从运行您的代码时得到了另一个错误:

Error in `[.data.frame`(dataset.temp, , input$col) : 
  undefined columns selected

原因(至少是由于我的错误)是input$col是一个字符串,您将其视为整数。 有两个可能的修复:

  1. 将您的selectInput更改为numericInput ,这意味着现在input$col返回一个整数,或者
  2. 手动将input$col转换input$col col <- as.integer(input$col)的整数

使用第二种方法,这是完整的代码。

runApp(shinyApp(
  ui = fluidPage(
    titlePanel("Data"),
    sidebarLayout(
      sidebarPanel(
        textInput("from","Missing",
                  value="Enter characters"),
        textInput("to","Missing",
                  value="Enter characters"),
        selectInput("col","Select Column",
                    choices = c(1:6),
                    selected=1)),
      mainPanel(
        tableOutput('contents')
      )
    )
  ),
  server = function(input, output) {
    dataset.temp <- file
    output$contents <- renderTable({
        col <- as.integer(input$col)
        dataset.temp[,col] <- gsub(input$from, input$to,dataset.temp[,col])
      dataset.temp
    })
  }

))

我不知道您正在使用什么文件,所以我只使用了自己的csv文件,它可以正常工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM