Advertisement
Guest User

Untitled

a guest
May 31st, 2017
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. library(shiny)
  2.  
  3. ui <- basicPage(
  4. plotOutput("plot1", click = "plot_click"),
  5. verbatimTextOutput("info"),
  6. plotOutput("plot2", click = "plot_click"),
  7. verbatimTextOutput("info2")
  8. )
  9.  
  10. server <- function(input, output) {
  11.  
  12. nSubj = 10
  13. nValPerSubj = 10
  14. mapRows = 5
  15. mapCols = 5
  16.  
  17. vals = matrix(rnorm(nSubj), nrow = nSubj)
  18.  
  19. maps = replicate(nSubj, matrix(rnorm(mapRows*mapCols),
  20. nrow = mapRows,
  21. ncol = mapCols))
  22.  
  23.  
  24. corMap = matrix(nrow = mapRows, ncol = mapCols)
  25. for(r in 1:mapRows){
  26. for(c in 1:mapCols){
  27. corMap[r, c] = cor(vals, sapply(1:nSubj, function(z) maps[r, c, z]))
  28. }
  29. }
  30.  
  31. plotCell = function(r, c, vals, nSubj, corMap){
  32. cellVals = sapply(1:nSubj, function(z) maps[r, c, z])
  33. cellCor = corMap[r, c]
  34. plot(vals, cellVals, main = paste0("R = ", round(cellCor, 3)))
  35. abline(lm(vals ~ cellVals))
  36. }
  37.  
  38.  
  39. output$plot1 <- renderPlot({
  40. image(1:mapRows, 1:mapCols, corMap)
  41. })
  42.  
  43.  
  44. observe({
  45.  
  46. if(is.null(input$plot_click)){ return(NULL) }
  47. r = round(input$plot_click$x)
  48. c = round(input$plot_click$y)
  49. z = round(corMap[r, c], 3)
  50.  
  51. output$info <- renderPrint({
  52. c("Row" = r, "Column" = c, "Correlation" = z)
  53. })
  54.  
  55. output$plot2 <- renderPlot({
  56. plotCell(r, c, vals, nSubj, corMap)
  57. })
  58.  
  59. output$info2 <- renderPrint({
  60. cellVals = sapply(1:nSubj, function(z) maps[r, c, z])
  61. cbind("Values" = vals, "Cell Values" = cellVals)
  62. })
  63.  
  64. })
  65.  
  66.  
  67. }
  68.  
  69. shinyApp(ui, server)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement