Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(shiny)
- ui <- basicPage(
- plotOutput("plot1", click = "plot_click"),
- verbatimTextOutput("info"),
- plotOutput("plot2", click = "plot_click"),
- verbatimTextOutput("info2")
- )
- server <- function(input, output) {
- nSubj = 10
- nValPerSubj = 10
- mapRows = 5
- mapCols = 5
- vals = matrix(rnorm(nSubj), nrow = nSubj)
- maps = replicate(nSubj, matrix(rnorm(mapRows*mapCols),
- nrow = mapRows,
- ncol = mapCols))
- corMap = matrix(nrow = mapRows, ncol = mapCols)
- for(r in 1:mapRows){
- for(c in 1:mapCols){
- corMap[r, c] = cor(vals, sapply(1:nSubj, function(z) maps[r, c, z]))
- }
- }
- plotCell = function(r, c, vals, nSubj, corMap){
- cellVals = sapply(1:nSubj, function(z) maps[r, c, z])
- cellCor = corMap[r, c]
- plot(vals, cellVals, main = paste0("R = ", round(cellCor, 3)))
- abline(lm(vals ~ cellVals))
- }
- output$plot1 <- renderPlot({
- image(1:mapRows, 1:mapCols, corMap)
- })
- observe({
- if(is.null(input$plot_click)){ return(NULL) }
- r = round(input$plot_click$x)
- c = round(input$plot_click$y)
- z = round(corMap[r, c], 3)
- output$info <- renderPrint({
- c("Row" = r, "Column" = c, "Correlation" = z)
- })
- output$plot2 <- renderPlot({
- plotCell(r, c, vals, nSubj, corMap)
- })
- output$info2 <- renderPrint({
- cellVals = sapply(1:nSubj, function(z) maps[r, c, z])
- cbind("Values" = vals, "Cell Values" = cellVals)
- })
- })
- }
- shinyApp(ui, server)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement