0

I have two animated ioslides which work fine in separate presentations but when in the same presentation cause the error 'x' and 'y' lengths differ. Here is my MWE.

---
title: "Untitled"
runtime: shiny
output: ioslides_presentation
---

##Outliers

```{r, echo = FALSE, warning=FALSE}
sliderInput("multiplier", label = "Distance:", max = 1.35, min = 1, value = 
1, ticks=FALSE, animate=
          animationOptions(interval = 100, playButton = "run"))

 x     <- seq(5,15,length=50)  
 Day1 <- rnorm(50,mean=10,sd=0.5)

renderPlot({
 Day1[22] <- max(Day1)*input$multiplier
 plot(x,Day1, ylim=c(8.5,15.5))
 text(x=14, y=14.5, labels=paste0("Mean: ", round(mean(Day1),2)))
 text(x=14, y=14, labels=paste0("Median: ", round(median(Day1),2)))
})
```

##bootstrap
```{r, warning=FALSE}
library(plyr)
sliderInput("animation", "Number of samples:", 1,1000,1, step = 1, animate=
          animationOptions(interval=30, loop=FALSE))

x=c()
for (i in 1:1000) {
 x[i] <- round(rnorm(n=200, mean=10, sd=1),1)
}
dfx <- data.frame(x)

renderPlot({
 mp <- 
barplot(count(dfx[1:input$animation,])$freq,count(dfx[1:input$animation,])$x)
   axis(1,at=mp,labels=count(dfx[1:input$animation,])$x)
  legend("topright", legend=paste0("mean: 
",round(mean(dfx[1:input$animation,]),3)), bty="n")
})  

renderUI({
 plotOutput("unsized", height = 500, width = 400)
})
```

Presumably it's something trivial but when I look at the code separately I can't find anything

Cœur
  • 37,241
  • 25
  • 195
  • 267
dpel
  • 1,954
  • 1
  • 21
  • 31

1 Answers1

1

I think it has something to do with where the x/Day1 is placed. I usually place it inside the renderPlot function like this, which seems to work for me:

```{r, echo = FALSE, warning=FALSE}
inputPanel(
sliderInput("multiplier", label = "Distance:", max = 1.35, min = 1, value = 
1, ticks=FALSE, animate=animationOptions(interval = 100, playButton = "run"))
)

renderPlot({
 x <- seq(5,15,length=50)  
 Day1 <- rnorm(50,mean=10,sd=0.5)
 Day1[22] <- max(Day1)*(input$multiplier)
 plot(x,Day1, ylim=c(8.5,15.5))
 text(x=14, y=14.5, labels=paste0("Mean: ", round(mean(Day1),2)))
 text(x=14, y=14, labels=paste0("Median: ", round(median(Day1),2)))
})
```
timfaber
  • 2,060
  • 1
  • 15
  • 17