R:每年将ggplot链接到滑块

R:每年将ggplot链接到滑块,r,shiny,R,Shiny,我已经成功地为今年添加了一个滑块,并创建了一个ggplot。然而,我很难弄清楚如何按年份过滤数据(目前它显示每年一次),如滑块所示 如何获取数据: library(WDI) xdat <- WDI(indicator=c('NY.GNP.PCAP.CD', 'SH.DYN.MORT', 'SP.POP.TOTL', 'SP.DYN.LE00.IN', 'SP.DYN.TFRT.IN'), start=1960, end=2014, extra=TRUE) sdata <- subse

我已经成功地为今年添加了一个滑块,并创建了一个ggplot。然而,我很难弄清楚如何按年份过滤数据(目前它显示每年一次),如滑块所示

如何获取数据:

library(WDI)
xdat <- WDI(indicator=c('NY.GNP.PCAP.CD', 'SH.DYN.MORT', 'SP.POP.TOTL', 'SP.DYN.LE00.IN', 'SP.DYN.TFRT.IN'), start=1960, end=2014, extra=TRUE)
sdata <- subset(xdat, xdata$region != "Aggregates")
sdata <- na.omit(sdata)

sdata$reg <- ifelse(sdata$region == "Europe & Central Asia (all income levels)", 1, ifelse(sdata$region == "Middle East & North Africa (all income levels)", 2, ifelse(sdata$region == "South Asia", 3, ifelse(sdata$region=="Latin America & Caribbean (all income levels)", 4, ifelse(sdata$region=="Sub-Saharan Africa (all income levels)", 5, ifelse(sdata$region=="East Asia & Pacific (all income levels)", 6, ifelse(sdata$region=="North America", 7, 0)))))))

sdata$col <- ifelse(sdata$reg == 1, "#FFFFFF", ifelse(sdata$reg == 2, "yellow", ifelse(sdata$reg == 3, "red", ifelse(sdata$reg== 4, "green", ifelse(sdata$reg== 5, "orange", ifelse(sdata$reg==6, "lavender", ifelse(sdata$reg== 7, "pink", 0)))))))
服务器.r

library(dplyr)

shinyServer(function(input, output) {
  output$view <- renderPlot({
    ggplot(sdata, aes(x=NY.GNP.PCAP.CD, y = SP.DYN.LE00.IN)) +     geom_point(aes(size=pop^(0.75)/20000000+2, colour=col)) 
  })
})
库(dplyr)
shinyServer(功能(输入、输出){

output$viewui.r不适合我(编辑:更改了一些标记),但我猜是这样的:

用户界面

和服务器

library(dplyr)

shinyServer(function(input, output) {
  output$view <- renderPlot({
    temp = sdata[sdata$year>(input$slider1)&sdata$year<2014,]
    ggplot(temp, aes(x=NY.GNP.PCAP.CD, y = SP.DYN.LE00.IN)) + geom_point(aes(size=temp$SP.POP.TOTL^(0.75)/20000000+2, colour=col)) 
  })
})
库(dplyr)
shinyServer(功能(输入、输出){

output$view(input$slider1)&sdata$yearui.r对我不起作用(编辑:更改了一些标记),但我猜是这样的:

用户界面

和服务器

library(dplyr)

shinyServer(function(input, output) {
  output$view <- renderPlot({
    temp = sdata[sdata$year>(input$slider1)&sdata$year<2014,]
    ggplot(temp, aes(x=NY.GNP.PCAP.CD, y = SP.DYN.LE00.IN)) + geom_point(aes(size=temp$SP.POP.TOTL^(0.75)/20000000+2, colour=col)) 
  })
})
库(dplyr)
shinyServer(功能(输入、输出){

输出$view(输入$slider1)&sdata$year现在应该可以工作了,我看到你只改变了开始输入,所以
input$slider1
现在选择了最短的年份可能是我的ui.r?我更改了一些列规格,因此ui.r现在可以为我工作。不确定pop在
geom_点中指的是什么,是
sdata$SP.pop.TOTL
?是的,它是该变量的。如果可以的话完成所有工作(ui.r和server.r),那将是一个救命恩人。现在应该可以工作了,我看到你只改变了开始输入,所以
input$slider1
现在选择了最短的年份可能是我的ui.r?我更改了一些列规格,所以ui.r现在可以为我工作了。不确定在
geom\u点
中pop指的是什么,是
sdata$SP.pop.TOTL
?是这个变量的.如果你能把所有事情都做好(ui.r和server.r),那将是一个救星。
library(dplyr)

shinyServer(function(input, output) {
  output$view <- renderPlot({
    temp = sdata[sdata$year>(input$slider1)&sdata$year<2014,]
    ggplot(temp, aes(x=NY.GNP.PCAP.CD, y = SP.DYN.LE00.IN)) + geom_point(aes(size=temp$SP.POP.TOTL^(0.75)/20000000+2, colour=col)) 
  })
})