Как отображать имена столбцов таблиц без точек, заменяя пробелы и удаляя имя таблицы в Shiny App? - PullRequest
0 голосов
/ 21 ноября 2018

Я создаю сложное блестящее приложение со множеством таблиц, которые создаются как выходные данные функции, которую я здесь называю, для простоты теста.

Затем я хочу отобразить таблицы тезисов с именами столбцов, которые яназначил через функцию, однако они показывают с точками вместо пробелов или скобок.Кроме того, также отображается имя таблицы (что мне не нужно)

Есть идеи, как отобразить правильные имена столбцов: var test 1 и var test (2)?

Ниже мой код:

library(shiny)
library(ggplot)


ui <- fluidPage(


  sidebarLayout(
    sidebarPanel(
      selectInput("A","Test",choices=c(1,2,3)),
      actionButton("go","GO")
    ),


    mainPanel(
      plotOutput("graph1"),
      tableOutput("table1")
    )

  ))

server <- function(input, output) {

  test<-function(A){
    C<-(1:3)
    A<-as.numeric(A)
    dfA<-data.frame(A,C)
    colnames(dfA)<-c("var test 1","var test (2)")
    g1<-dfA


    g2<-ggplot(data = dfA, aes(x=`var test 1`, y=`var test (2)`))+
      geom_point(shape=1)


    outputs<-list("output1"=g1,
                  "output2"=g2)
  }


  model_output<-eventReactive(input$go,{
    test(input$A)
  })

  output$graph1<-renderPlot({
    model_output()[2]

  })
  output$table1<-renderTable({
    model_output()[1]

  })



}

shinyApp(ui = ui, server = server)

1 Ответ

0 голосов
/ 21 ноября 2018

Проблема в извлечении list элементов.Это должно быть [[ вместо [, потому что когда мы делаем [, это все равно list с одним элементом

model_output()[[1]]

и

model_output()[[2]]

Если мыпопытайтесь воспроизвести проблему

o1 <- list(g1 = data.frame(`var test 1` = 1, `var test (2)` = 1:3, check.names = FALSE))
o1[1]
$g1 # note it is still a `list`
#  var test 1 var test (2)
#1          1            1
#2          1            2
#3          1            3

str(o1[1])
List of 1
# $ g1:'data.frame':    3 obs. of  2 variables:
# ..$ var test 1  : num [1:3] 1 1 1
#  ..$ var test (2): int [1:3] 1 2 3

o1[[1]]
#   var test 1 var test (2)
#1          1            1
#2          1            2
#3          1            3

-полный код

library(shiny)
library(ggplot2)


ui <- fluidPage(


  sidebarLayout(
    sidebarPanel(
      selectInput("A","Test",choices=c(1,2,3)),
      actionButton("go","GO")
    ),


    mainPanel(
      plotOutput("graph1"),
      tableOutput("table1")
    )

  ))

server <- function(input, output) {

  test<-function(A){
    C<-(1:3)
    A<-as.numeric(A)
    dfA<-data.frame(A,C)
    colnames(dfA)<-c("var test 1","var test (2)")
    g1<-dfA


    g2<-ggplot(data = dfA, aes(x=`var test 1`, y=`var test (2)`))+
      geom_point(shape=1)


    outputs<-list("output1"=g1,
                  "output2"=g2)
  }


  model_output<-eventReactive(input$go,{
    test(input$A)
  })

  output$graph1<-renderPlot({
    model_output()[[2]]

  })
  output$table1<-renderTable({
    model_output()[[1]]

  })



}

shinyApp(ui = ui, server = server)

-выход

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...