Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R Shining App Get错误结果的长度必须为37849,而不是0_R_Shiny_Longitudinal - Fatal编程技术网

R Shining App Get错误结果的长度必须为37849,而不是0

R Shining App Get错误结果的长度必须为37849,而不是0,r,shiny,longitudinal,R,Shiny,Longitudinal,我想看看20岁到35岁之间,根据种族划分的受教育者比例。在下一步中,我制作了闪亮的应用程序。然而,我犯了这个错误![在此处输入图像描述][1] 请帮助我如何将此代码链接到Shining应用程序 我的问题是如何将sliderInput从20岁改为35岁,在每个年龄段,根据种族,我知道有多少人拥有高中、大学和学士学位 下面你可以看到年龄、教育和种族的编码 # rename education nlsy97$educstat1997<-Recode(nlsy97$R1205700,

我想看看20岁到35岁之间,根据种族划分的受教育者比例。在下一步中,我制作了闪亮的应用程序。然而,我犯了这个错误![在此处输入图像描述][1] 请帮助我如何将此代码链接到Shining应用程序

我的问题是如何将sliderInput从20岁改为35岁,在每个年龄段,根据种族,我知道有多少人拥有高中、大学和学士学位

下面你可以看到年龄、教育和种族的编码

# rename education
nlsy97$educstat1997<-Recode(nlsy97$R1205700,                             recodes="0='None';1:2='Hischool';3='college';4='bachelor';5:7='mastermore' ;-5=NA;-3=NA;-4=NA", as.factor=T)
#rename ages
nlsy97$age1<-Recode(nlsy97$R1194100, recodes="12=12;13=13;14=14;15=15;16=16=17=17;18=18;19=19;-5=NA",as.factor=F)

# recode race
nlsy97$race<-Recode(nlsy97$R1482600  , recodes="1='black';2='hispanic' ;4='white';else=NA", as.factor=T)
table(nlsy97$race)
#重命名教育

nlsy97$EDUCSTAT1997为了使此数据可复制,您能否提供您的数据子集?例如,通过编辑您的问题并添加来自
dput(head(nlsy97,10))
?有关如何制作一个好的可复制示例的详细信息,请参阅。谢谢,我将更改itI。我添加了dput(head(nlsy97,10))并编辑了该问题。谢谢,我在运行您的代码进行数据处理时出现了一些错误(在
recode
中出现了一些错误)。您应该使用每个人都拥有的数据集(
mtcars
iris
…),尝试使用它制作您的闪亮应用程序,然后用您自己的数据替换此数据集。感谢您添加数据,尽管此数据仍然不可复制。例如,在一条筛选语句之后有
sub%
myvars1<-c( "R0000100","R0536300", "R0536402","R1489700","R1489800", "gender","race","age1","age2","age3","age4","age5","age6","age7","age8","age9","age10","age11","age12","age13","age14","age15","age16","age17","educstat1997","educstat1998","educstat1999","educstat2000","educstat2001","educstat2002","educstat2003","educstat2004","educstat2005","educstat2006","educstat2007","educstat2008","educstat2009","educstat2010","educstat2011","educstat2013","educstat2015")
which(myvars1 %in% names(nlsy97))
sub<-nlsy97[,myvars1]

sub<-subset(sub,is.na(sub$age1)==F&is.na(sub$age2)==F&is.na(sub$age3)==F&is.na(sub$age4)==F&is.na(sub$age5)==F&is.na(sub$age6)==F&is.na(sub$age7)==F&is.na(sub$age8)==F&is.na(sub$age9)==F&is.na(sub$age10)==F&is.na(sub$age11)==F&is.na(sub$age12)==F&is.na(sub$age13)==F&is.na(sub$age14)==F&is.na(sub$age15)==F&is.na(sub$age16)==F&is.na(sub$age17)==F)

head(sub, n=5)


x.vertical<-reshape(sub, idvar="R0000100", varying=list(age1=c("age1", "age2", "age3","age4","age5","age6","age7","age8","age9","age10","age11","age12","age13","age14","age15","age16"), age2=c("age2", "age3","age4","age5","age6","age7","age8","age9","age10","age11","age12","age13","age14","age15","age16","age17"),educstat1=c("educstat1997","educstat1998","educstat1999","educstat2000","educstat2001","educstat2002","educstat2003","educstat2004","educstat2005","educstat2006","educstat2007","educstat2008","educstat2009","educstat2010","educstat2011","educstat2013"),educstat2=c("educstat1998","educstat1999","educstat2000","educstat2001","educstat2002","educstat2003","educstat2004","educstat2005","educstat2006","educstat2007","educstat2008","educstat2009","educstat2010","educstat2011","educstat2013","educstat2015")), times=1:16, direction="long", v.names=c( "agestart", "ageend","educstat1","educstat2") ) 

x.vertical<-x.vertical[order(x.vertical$R0000100, x.vertical$time),]
# STEP 1: copy an example Shiny app into app.R (or ui.R and server.R)
library(shiny)
library(tidyverse)
library(gapminder)

# User Interface
ui <- basicPage(

  # STEP 3: Create an input widget here (e.g. sliderInput)
  sliderInput("age", "Select Age:", animate = TRUE,  # STEP 4: add animate = TRUE here
              min = 20, max = 35, value = 25,
              step = 1,
              sep=""   # so thousands are not separated with a comma (without this defaults to 1,952 - 2,007)
              ),       #note this comma here - different to our usual R code

  tabPanel("Plot",   plotOutput(outputId = "myplot"))


)




x.vertical2<-x.vertical[complete.cases(x.vertical[, c("race","educstat2")]),]
sums<-as.data.frame(xtabs(~educstat2+race, x.vertical2))
# Server
server <- function(input, output) {

  output$myplot <- renderPlot({
    # STEP 2: copy your plot code here
    x.vertical2 %>%                  
      filter(agestart==input$agestart)
     mutate(educstat2 = fct_relevel(educstat2, 
            "None", "Hischool", "c", 
            "college")) %>%
  filter(is.na(educstat2)==F)%>%
  group_by(race, educstat2)%>%
  summarise(n = n())%>%
  mutate(freq= n /sum(n))%>%
  ggplot(aes(x = factor(educstat2),y=freq, fill= race)) +

  geom_bar( stat="identity",position = "dodge") +theme_bw()


  })  

}
shinyApp(ui, server)



dput(head(nlsy97, 10))
structure(list(R0000100 = 1:10, R0536300 = c(2L, 1L, 2L, 2L, 
1L, 2L, 1L, 2L, 1L, 1L), R0536401 = c(9L, 7L, 9L, 2L, 10L, 1L, 
4L, 6L, 10L, 3L), R0536402 = c(1981L, 1982L, 1983L, 1981L, 1982L, 
1982L, 1983L, 1981L, 1982L, 1984L), R1194100 = c(15L, 14L, 13L, 
15L, 15L, 15L, 14L, 16L, 15L, 14L), R1205700 = c(0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L), R1235800 = c(1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L), R1482600 = c(4L, 2L, 2L, 2L, 2L, 2L, 2L, 
4L, 4L, 4L), R2553500 = c(17L, 16L, 15L, 17L, 16L, 16L, 15L, 
17L, 16L, 14L), R2564101 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L), R3876300 = c(18L, 17L, 16L, 18L, 17L, 17L, 16L, 18L, 
17L, 15L), R3885701 = c(2L, 0L, 0L, 2L, 0L, 0L, 0L, 2L, 0L, 0L
), R5453700 = c(19L, 18L, 17L, 19L, 18L, 19L, 17L, 19L, 18L, 
16L), R5464901 = c(2L, 2L, 0L, 2L, 2L, 2L, 0L, 2L, 2L, 0L), R7216000 = c(20L, 
19L, 18L, 20L, 19L, 20L, 18L, 20L, 19L, 17L), R7228601 = c(2L, 
2L, 2L, 2L, 2L, 2L, 0L, 2L, 2L, 0L), S1531400 = c(21L, 20L, 19L, 
21L, 20L, 20L, 19L, 21L, 20L, 18L), S1542501 = c(2L, 2L, 2L, 
2L, 2L, 2L, 0L, 2L, 2L, 2L), S2001000 = c(22L, 21L, 20L, 22L, 
21L, 22L, -5L, 22L, 21L, 19L), S2012301 = c(4L, 2L, 3L, 2L, 2L, 
2L, -5L, 4L, 2L, 2L), S3801100 = c(23L, 22L, 21L, 23L, 22L, 23L, 
-5L, 23L, 22L, 20L), S3813801 = c(4L, 2L, 3L, 2L, 2L, 2L, -5L, 
4L, 2L, 2L), S5401000 = c(24L, 23L, -5L, 24L, 23L, 24L, 22L, 
24L, 23L, 21L), S5413400 = c(4L, 2L, -5L, 2L, 2L, 2L, 0L, 4L, 
4L, 2L), S7501200 = c(25L, -5L, -5L, 25L, 24L, 25L, 23L, 25L, 
24L, 22L), S7514300 = c(4L, -5L, -5L, 2L, 2L, 2L, 0L, 4L, 4L, 
4L), T0008500 = c(26L, -5L, -5L, 26L, 25L, 25L, -5L, 26L, 25L, 
23L), T0014700 = c(4L, -5L, -5L, 2L, 2L, 2L, -5L, 4L, 4L, 4L), 
    T2011100 = c(27L, 26L, -5L, 27L, 26L, 26L, -5L, -5L, 26L, 
    24L), T2016800 = c(4L, 2L, -5L, 2L, 2L, 2L, -5L, -5L, 4L, 
    4L), T3601500 = c(28L, 27L, 26L, 28L, 26L, 27L, 26L, 28L, 
    27L, 25L), T3607100 = c(4L, 2L, 3L, 2L, 2L, 2L, 1L, 5L, 4L, 
    4L), T5201400 = c(29L, 28L, -5L, 29L, 28L, 28L, 27L, -5L, 
    28L, -5L), T5207400 = c(4L, 2L, -5L, 2L, 2L, 2L, 1L, -5L, 
    4L, -5L), T5207500 = c(4L, 2L, -5L, 2L, 2L, 2L, 1L, -5L, 
    4L, -5L), T6651300 = c(29L, 29L, 28L, 30L, 29L, 29L, 28L, 
    30L, 29L, -5L), T6657200 = c(4L, 2L, 3L, 2L, 2L, 2L, 1L, 
    5L, 5L, -5L), T6657300 = c(4L, 2L, 3L, 2L, 2L, 2L, 1L, 5L, 
    5L, -5L), T8123600 = c(32L, 31L, 30L, 32L, 31L, 31L, -5L, 
    -5L, 31L, -5L), T8129600 = c(4L, 2L, 3L, 2L, 2L, 2L, -5L, 
    -5L, 5L, -5L), T8129700 = c(4L, 2L, 3L, 2L, 2L, 2L, -5L, 
    -5L, 5L, -5L), U0001800 = c(34L, 33L, -5L, 34L, 33L, 34L, 
    32L, 34L, 33L, -5L), U0009400 = c(4L, 2L, -5L, 2L, 2L, 2L, 
    1L, 5L, 5L, -5L), U1838500 = c(-5L, 35L, 34L, 36L, 35L, 35L, 
    -5L, -5L, 35L, 34L), weight = c(607550L, 0L, 0L, 261156L, 
    450091L, 367309L, 0L, 0L, 618091L, 0L)), row.names = c(NA, 
10L), class = "data.frame")