Как построить выбранный вход из функции selectInput () в блестящем? - PullRequest
0 голосов
/ 06 июня 2018

Я использую следующие две функции ввода кода в блестящем:

selectInput("categoryVisu", label="SELECT CATEGORY", choices = list("Full" = "full", "Fact" = "fact", "Fact Positive" = "factpos", selected = "full", multiple = TRUE)

и

selectInput("investerVisu", label="SELECT INVESTOR", choices = list("Informed" = "inf", "Noise" = "noise"), selected = "inf", multiple = TRUE)

Моя задача теперь, если пользователь выбирает, например, «Полный» и ««Информирован», чем мой код должен взять столбец «InformedFull» из моего набора данных, чтобы напечатать код.Как я могу справиться с этим?Мой DataSet выглядит следующим образом:

Набор данных

Я уже сделал код ggplot, который выглядит так:

ggplot(data = OLS.Data, aes(x=OLS.Data$Date, y=...))+geom_line()

Итак, где я разместил... они должны быть основаны на выборе стенда моего selectInput, быть правильным столбцом моего набора данных.

Мои окна пользовательского интерфейса выглядят так:

  tabItem(tabName = "visu",
          fluidRow(
            box(
              title = "Controls-1", 
              status = "primary", 
              solidHeader = TRUE,
              width = 3,
              selectInput("categoryVisu", label="SELECT CATEGORY", choices = list("Full" = "Full", "Fact" = "Fact", "Fact Positive" = "Fact.Pos", "Fact Negative" = "Fact.Neg", "Emotions" = "Emotions", "Emotions Fact" = "EmotionsFact"), selected = "Full", multiple = TRUE)
            ),

            box(
              title = "Controls-2", 
              status = "primary", 
              solidHeader = TRUE,
              width = 3,
              selectInput("investerVisu", label="SELECT INVESTOR", choices = list("Informed" = "Informed", "Noise" = "Noise"), selected = "Informed", multiple = TRUE)
            ),

И файл моего сервера:

server <- function(input, output) {

  observeEvent(input$categoryVisu,{

    partA<-input$catagoryVisu
    partA<-as.character(partA)    

  })

  observeEvent(input$investerVisu,{

    partB<-input$investerVisu
    partB<-as.character(partB)

  })

  partC<-paste(partB,partA)

  DataFus<-OLS.Data$partC

  output$myPlot <- renderPlot({
    ggplot(data = OLS.Data, aes(x=OLS.Data$Date, y=OLS.Data$NYSE))+geom_line()+geom_line(data = OLS.Data,aes(x=OLS.Data$Date, y=DataFus),color="red")+geom_line(alpha = input$alphaVisu)
  })

}

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Решение найдено:

server <- function(input, output) {

  partA = NULL
  partB = NULL

  makeReactiveBinding("partA")
  makeReactiveBinding("partB")

  observeEvent(input$categoryVisu, { 
    partA<<-input$categoryVisu
    partA<<-as.character(partA)
  })

  observeEvent(input$investorVisu, { 
    partB<<-input$investorVisu
    partB<<-as.character(partB)
  })

  observe({
    PartC<-as.character(paste(partB,partA,sep=""))
    print(PartC)
      output$myPlot <- renderPlot({
        ggplot(data = OLS.Data, aes(x=OLS.Data$Date, y=OLS.Data$NYSE))+geom_line()+geom_line(data = OLS.Data,aes(x=OLS.Data$Date, y=OLS.Data[PartC]),color="red")+geom_line(alpha = input$alphaVisu)
      })
  })
0 голосов
/ 06 июня 2018

Потяните входы к двум, а затем вставьте их вместе.Как только вы это сделаете, используйте это для извлечения данных из вашего фрейма данных.Введите данные в качестве переменной в функцию plot.

# If you have a button simply observeEvent(input$button, { and put this all 
# under that environment.

partA<-reactive({input$categoryVisu

})

partB<-reactive({input$investerVisu

})


#paste together to get full column name

PartC<-reactive(paste(partA(),partB(),sep=""))

# Pull column from data frame OR put it directly into ggplot argument
Data<-OLS.Data[PartC]

output$myplot<-renderPlot({

#use column as Y-Axis series
ggplot(data = OLS.Data, aes(x=OLS.Data$Date, y=OLS.Data[PartC]))+geom_line()

})

Обратите внимание, что вы назначили "inf" в качестве значения для кого-то, выбравшего "Informed", поэтому он не будет соответствовать заголовкам столбцов вашего фрейма данных.Самый простой способ исправить это - установить значения вариантов в имена, которые будут использоваться в заголовках столбцов, например «Informed» = «Informed»

Если мы используем кнопку

>ui
#Add button to ui.R
actionButton("go","Reload")

>server
observeEvent(input$go, {

#Grab input to categoryVisu
partA<-input$categoryVisu
partA<-as.character(partA)

#Grab input to investerVisu
partB<-input$investerVisu
partB<-as.character(partB)

#paste together to get full column name
PartC<-paste(partA,partB,sep="")

# Pull column from data frame OR put it directly into ggplot argument
Data<-OLS.Data[PartC]

output$myplot<-renderPlot({

#use column as Y-Axis series
ggplot(data = OLS.Data, aes(x=OLS.Data$Date, y=OLS.Data[PartC]))+geom_line()

}) #Closes plot

}) #Closes observing of action button
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...