Я пытаюсь реализовать некоторый анализ в блестящем приложении с помощью определенной в пакете команды, которая выводит график. Эта определяемая пакетом команда требует предварительного ввода от отдельной команды (та, которая указывает, какие конкретные столбцы в данной матрице данных должны быть оценены — эти столбцы содержат информацию о типах ячеек).
#ui.R
uiactual <- dashboardPage(
dashboardHeader(title="Project"),
[dashboard sidebar....]
dashboardBody(tabItems(
box(sliderInput(inputId="maximum_genes", label="Choose number genes per cell-type", value=15, min=5, max=15)),
column(7, checkboxGroupInput("cell_choices", "choose cell types", colnames(IRIS), selected=c("Bcell-naïve", "CD4Tcell-N0","Monocyte-Day0", "NKcell-control", "Neutrophil-Resting"))),
actionButton(inputId="choices", label="Update heatmap"),
column(12,plotOutput("graph"))
)
)
)
)
#server.R
serveractual <- function(input, output) {
dataInput<-eventReactive(input$choices, {
tagData(IRIS[, input$cell_choices], max=input$maximum_genes)
})
output$graph<-renderPlot({
package_defined_plot( data=data, dataTag=dataInput() )
})
}
В приведенном выше коде для server.R команда tagData является предварительным процессом, необходимым для вывода из package_defined_plot.
Целью этого анализа является визуальная и численная проверка существенной разницы между указанными в столбце типами ячеек.
Хотя механизм анализа кажется никоим образом не нарушенным, по какой-то причине входные данные (хранящиеся в функции dataInput) искажаются, так что выходные данные полностью отличаются от того, что можно было бы ожидать в неяркой среде. См. ниже значения значимости, сопровождающие выводимые тепловые карты:
Выше приведено нормальное значение, полученное для каждого типа ячейки, которое получается, когда я устанавливаю вывод tagData равным переменной «irisTag» как обычно, когда не использую блестящий и присваиваю irisTag в качестве аргумента dataTag в package_defined_plot.
Обратите внимание на разные значения значимости для типов ячеек при реализации в блестящем.
Из-за этого выходные тепловые карты неверны при обработке в блестящем.
Блестящий вывод — это нормально, когда я опускаю функцию dataInput и просто задаю аргумент dataTag как обычно. Следовательно, по какой-то причине передача информации через функцию dataInput не обеспечивает правильную доставку входной информации.
Чтобы убедиться, что это произошло из-за того, что checkboxgroupInput входит в dataInput(), передал нормальные аргументы dataInput(), но тот же неверный вывод все равно получилось.
В общем, что-то не так с тем, как я храню информацию о столбцах в блестящей реализации dataInput(). Несмотря на то, что вывод в блестящем согласован после многократного тестирования (т. е. он не меняется случайным образом), он неверен.
ОБНОВЛЕНИЕ. Следующее дает тот же неверный вывод:
package_defined_plot( data=data, dataTag=tagData(IRIS[, c("Bcell-naïve", "CD4Tcell-N0","Monocyte-Day0", "NKcell-control", "Neutrophil-Resting")], max=input$maximum_genes)
Однако, когда я назначаю команду tagData переменной за пределами блестящей среды, а затем устанавливаю этот аргумент тега данных равным этой переменной, вывод правильный.
Может ли кто-нибудь сказать мне, как я могу это исправить?