--- title: "Scatterplot examples" output: html_notebook runtime: shiny --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) library(shiny) library(tidyverse) ``` This demonstration will use some random data. Lets start by generating the random data. So give a [random seed][seed] and pick a sample size for your sample. ```{r seed, echo=FALSE} inputPanel( selectInput("N", label = "Sample Size:", choices = c(25, 50, 100, 250, 500, 1000), selected = 100), numericInput("seed", label = "Random number Seed (integer)", min = 0, max = .Machine$integer.max, value = floor(runif(1)*.Machine$integer.max), step = 157) ) renderPlot({ N <<- as.numeric(input$N) set.seed(input$seed) X <- rnorm(N) Err <- rnorm(N) rho <- runif(9,-1,1) names(rho) <- c("A","B","C","D","E","F","G","H","I") Y <- matrix(NA,N,9) colnames(Y) <- names(rho) ## Linear for (j in 1:9) Y[,j] <- rho[j]*X+sqrt(1-rho[j]*rho[j])*Err ## Select some for curves curves <- sample.int(9,rbinom(1,9,.3)) for (j in curves) { if (runif(1) < .5) { ## Quadradic rho2 <- ifelse(runif(1)<.5,-1,1)*runif(1,.5,.85) sigma <- sqrt(1-rho[j]*rho[j]) Y[,j] <- rho[j]*X+rho2*X*X+sigma*Err rho[j] <- cor(X,Y[,j]) } else { ## Split curve sigma <- sqrt(1-rho[j]*rho[j]) x0 <- runif(1,-.5,.5) b11 <- rho[j] b12 <- rnorm(1,0,.2) b02 <- (b11-b12)*x0 Y[,j] <- ifelse(X