Получение ошибки при попытке отобразить несколько входов селективирования на одном графике в Shiny - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь построить точечную диаграмму с несколькими входами, используя выборочный вход с несколькими = ИСТИНА.

В основном, у меня есть список различных генов, и я хочу построить их друг против друга, используяточечный график.Я могу выбрать 2 гена и нанести их друг на друга в порядке, но я хочу иметь возможность выбрать один ген для построения на оси Y, а затем выбрать несколько других для построения на нем одновременно на оси Xи на том же участке через selectizeInput( multiple = TRUE).в настоящее время приведенный ниже код прекрасно работает для одной пары генов, но как только я выберу другой ген для построения графика против гена на оси Y, я получу Error: more than one expression parsed

Я знаю, что должен быть какой-то способделать это через пакет dpylr, но когда я попытался это сделать, я не мог понять, как выбрать только несколько выбранных столбцов, а не растопить всю таблицу.

Мой блестящий код, ограниченный соответствующимираздел и сокращенная версия моей таблицы данных приведены ниже.

> Short_cortex5
                         Names MARC1 MARC2 MARCH1  SEPT1    DEC1 MARCH2  SEPT2
    1 GTEX-1117F-3226-SM-5N9CT 4.459 15.30  2.501 1.0680 0.02610  81.15  66.14
    2 GTEX-111FC-3126-SM-5GZZ2 6.902 16.07  4.700 0.2980 0.00000  68.90  88.95
    3 GTEX-1128S-2726-SM-5H12C 5.361 17.27  2.462 0.3812 0.00000  63.41  65.20
    4 GTEX-117XS-3026-SM-5N9CA 4.792 11.37  3.107 0.5550 0.02261  84.53  48.98
    5 GTEX-1192X-3126-SM-5N9BY 5.772 21.76  6.123 0.7558 0.00000  88.49 106.20
    6 GTEX-11DXW-1126-SM-5H12Q 5.143 15.55  4.239 0.5859 0.03581  58.91  69.80
    7 GTEX-11DXY-3226-SM-5GIDE 3.856 16.74  4.596 0.6551 0.02627  70.38  68.50
    8 GTEX-11EI6-3026-SM-5GZZO 6.386 11.48  2.167 0.3567 0.01090  60.14  74.04


library(shiny)
library(ggplot2)
#TPM5
GeneNames <- colnames(Short_cortex5[2:ncol(Short_cortex5)])
# Define UI for application
ui <- fluidPage(

  # Application title
  titlePanel("Cell specific gene expression enrichment"),

  # Sidebar 
  sidebarLayout(
    sidebarPanel(
      selectizeInput(inputId = "gene_X",
                     label = "Select gene X:",
                     choices = GeneNames,
                     selected = "MARCH1",
                     multiple = TRUE),

      selectizeInput(inputId = "gene_Y",
                     label = "Select gene Y:",
                     choices = GeneNames,
                     selected = "SEPT1")
    ),
        # Show a plot 
    mainPanel(
      plotOutput(outputId = "corrPlot")
    )
  )
)

# Define server logic 
server <- function(input, output) {

  output$corrPlot <- renderPlot({
    req(input$gene_X)
    ggplot(data = Short_cortex5, aes_string(x=input$gene_X, y=input$gene_Y)) +
      geom_point()  +
      geom_smooth(method = lm, se = FALSE) +
      scale_x_log10() + 
      scale_y_log10()
  })
}

# Run the application 
shinyApp(ui = ui, server = server)

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

ggplot() +
  geom_point(data = Short_cortex5, aes(x = Short_cortex5$SEPT2, y = Short_cortex5$MARC1)) +
  geom_smooth(data = Short_cortex5, aes(x = Short_cortex5$SEPT2, y = Short_cortex5$MARC1), method = lm, se = FALSE) +
  geom_point(data = Short_cortex5, aes(x = Short_cortex5$SEPT2, y = Short_cortex5$MARC2)) +
  geom_smooth(data = Short_cortex5, aes(x = Short_cortex5$SEPT2, y = Short_cortex5$MARC2), method = lm, se = FALSE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...