$运算符对原子向量无效:: R闪亮

时间:2014-04-03 12:35:13

标签: r shiny

我有25个问题的客户调查。问题的答案可在" 1"," 2"," 3"," 4" (1-非常好,2-Good,3-Normal,4-Bad) 每行包含受访者姓名及其给出的所有答案。

数据采用此格式,响应者ID和响应值,列标题包含问题名称。

21044194- 1- 2- 4- 1- 3- 1- 1- 2- 1- 1- 3- 2- 2- 2- 2- 4- 2 21044198- 1- 2- 4- 4- 1- 1- 2- 2- 1- 1- 3- 2- 4- 1- 3- 4- 2 21044199- 1- 2- 3- 1- 2- 3- 2- 1- 1- 2- 3- 2- 4- 1- 3- 4- 2

现在我想创建一个闪亮的应用程序,其中我列出了所有25个问题作为输入,并根据所选问题我需要显示答案的饼图。像这样的1个问题31%ppl选择Very Good,22%选择Good,31%选择Normal,17%选择Bad。

我写了以下代码 - >

Ui.R

library(shiny)
maxraw <- read.csv("C:/Users/Suchita/Desktop/maxraw.csv")
coln <- colnames(maxraw)

# Define UI for dataset viewer application
    shinyUI(pageWithSidebar(
    headerPanel('Iris k-means clustering'),
    sidebarPanel(
    selectInput('xcol', 'X Variable', choices = c(coln[26], coln[27], coln[28], coln[29])),
    #selectInput('ycol', 'Y Variable', names(iris),
                #selected=names(iris)[[2]]),
    numericInput('clusters', 'Cluster count', 3,
                 min = 1, max = 9)
    ),
     mainPanel(
     plotOutput('plot1')
    )
   ))

Server.R

 library(shiny)
 library(datasets)
 maxraw <- read.csv("C:/Users/Suchita/Desktop/maxraw.csv")

 # Define server logic required to summarize and view the selected
 # dataset
 shinyServer(function(input, output, session) {

  # Combine the selected variables into a new data frame
  selectedData <- reactive({
  ss <- switch(input$xcol,
       "Question1." = 26,
       "Question2" =      27,
         "Question3" = 28)
  a = table(maxraw[,ss])
  a = as.data.frame(a)

  a$pct <- round(a$Freq/sum(a$Freq)*100) #calculated percentage
  a$pcts <- paste(a$pct, "%") # add percents to labels 
   })

  output$plot1 <- renderPlot({
  pie(a$pct,labels = a$pcts, main = "Hospital Survey")
 })

 })

这是str(maxraw)

  

STR(maxraw)       &#39; data.frame&#39;:43 obs。 48个变量:        $ Response.ID:int 21044194 21044264 21044287 21044402 21044435 21044481 21044529 21059249 21059266 21059297 ...
       $ IP.Address:因子w / 6级&#34;&#34;,&#34; 122.177.157.116&#34;,..:5 5 5 5 5 5 5 5 5 5 ...
       $ Timestamp..MM.DD.YYYY。 :因子w / 44级&#34;&#34;,&#34; 02/12/2014 04:30:20&#34;,..:2 3 4 5 6 7 8 9 10 11 ... <登记/>        $重复:logi FALSE FALSE FALSE FALSE FALSE ...
       $ Time.Taken.to.Complete..Seconds。 :int 146 125 181 94 111 112 575 149 115 0 ...
       $ Response.Status:因子w / 3级&#34;&#34;,&#34;完成&#34;,..:2 2 2 2 2 2 2 2 2 3 ...
       $ Seq..Number:int 1 1 1 1 1 1 1 1 1 1 ...
       $ External.Reference:logi NA NA NA NA NA NA ...
       $ Custom.Variable.1:logi NA NA NA NA NA NA ...
       $ Custom.Variable.2:logi NA NA NA NA NA NA ...
       $ Custom.Variable.3:logi NA NA NA NA NA NA ...
       $ Custom.Variable.4:logi NA NA NA NA NA NA ...
       $ Custom.Variable.5:logi NA NA NA NA NA NA ...
       $ Respondent.Email:logi NA NA NA NA NA NA ...
       $ Email.Group.Code:logi NA NA NA NA NA NA ...
       $ Country.Code:因子w / 2级&#34;&#34;,&#34; IN&#34;:2 2 2 2 2 2 2 2 2 2 ...
       $地区:int 10 10 10 10 10 10 10 10 10 10 ...
       $ Please.take.a.minute.to.give.us.your.feedback ... it.helps.us.improve.Thank.you.very.much.for.your.time.and.support..Please。 start.with.the.survey.now.by.clicking.on.the..B.Continue..B..button.below。 :logi NA NA NA NA NA NA ...
       $ Date.Of.Visit:因子w / 28级&#34;&#34;,&#34; 01/01 / 2014&#34;,..:22 6 24 1 19 2 21 7 5 1 ...
       $ First.Name:因子w / 39级&#34;&#34;,&#34; Abhi&#34;,&#34; Afsar&#34;,..:16 21 39 15 14 29 26 38 17 1 ...
       $ Last.Name:因子w / 40级&#34;&#34;,&#34; Abhinav&#34;,&#34; Ali&#34;,..:24 37 35 19 33 13 29 25 9 1 ...
       $ Phone:num 4.1e + 07 4.1e + 07 4.1e + 07 4.1e + 07 4.1e + 07 ...
       $ Email.Address:因子w / 40级&#34;&#34;,&#34; aali@gmail.com",..:17 24 39 16 15 29 28 38 18 1 ...
       $ Name.of.the.doctor。 :因子w / 29级&#34;&#34;,&#34; Jholu博士&#34;,..:29 17 14 28 28 26 12 5 18 1 ...
       $ Max.ID. :num 45367298 65438900 67534373 67543923 78654389 ...
       $ Satisfaction.With.Doctor.Was.the.Doctor.available.on.time。 :int 4 3 2 3 NA 3 4 2 1 NA ...
       $ Satisfaction.With.Doctor.Did.the.Doctor.treat.you.with.courtesy.and.respect。 :int 4 2 3 4 2 3 4 3 1 NA ...
       $ Satisfaction.With.Doctor.Did.the.Doctor.explain.your.diagnosis.and.treatment.plan.in.a.way.you.could.understand。 :int 4 3 2 3 3 3 4 3 1 NA ...
       $ Satisfaction.with.Nurses.Did.the.Nurses.treat.you.with.courtesy.and.respect。 :int 4 3 2 4 3 4 4 3 1 NA ...
       $ Appointment.Was.your.appointment.call.handled.efficiently.and.queries.resolved.to.your.satisfaction。 :int 4 2 3 3 4 3 4 3 1 NA ...
       $ Reception.Helpdesk.Was.the.Help.Desk.staff.at.the.hospital.helpful.and.courteous。 :int 4 3 4 3 4 3 4 2 1 NA ...
       $ Hospital.Infrastructure.Environment.Was.the.out.patient.department.location.convenient.to.identify。 :int 4 2 2 3 4 2 4 3 1 NA ...
       $ Hospital.Infrastructure.Environment.Did.the.areas.you.visited.in.the.hospital.look.clean.and.orderly。 :int 4 3 3 4 3 1 4 2 1 NA ...
       $ Hospital.Infrastructure.Environment.Were.the.public.area.washrooms.clean.and.hygienic。 :int 4 3 2 3 4 2 4 2 1 NA ...
       $ Front.Office.and.Billing.Did.the.front.office.staff.explain.and.resolve.your.query.regarding.registration.consult.diagnostics.charges.efficiently。 :int 4 3 2 3 2 3 4 2 1 NA ...
       $ Front.Office.and.Billing.Was.your.billing.handled.in.a.timely.and.accurate.manner。 :int 4 2 3 2 1 2 4 NA 1 NA ...
       $ Diagnostics.Services.Were.the.diagnostic.tests.conducted.in.a.timely.manner。 :int 4 3 2 1 1 3 4 2 1 NA ...
       $ Diagnostics.Services.Were.the.diagnostic.tests.conducted.efficiently.and.sensitively。 :int 4 3 3 1 2 3 4 2 1 NA ...
       $ Diagnostics.Services.Were.you.clearly.informed.about.report.delivery.time.and.mode.of.collection。 :int 4 3 3 1 2 NA 4 2 1 NA ...
       $ Max.Chemist.Were.all.the.prescribed.medicines.or.substitutes.available.at.the.chemist。 :int 4 3 NA 2 1 4 4 2 1 NA ...
       $ Max.Chemist.Did.you.find.the.services.at.the.pharmacy.efficient.and.timely。 :int 4 4 NA 3 1 2 4 2 1 NA ...
       $ Security ... Parking.Did.you.find.our.car.parking.Valet.service.polite.and.efficient。 :int 4 3 3 3 3 3 4 2 1 NA ...
       $ How.likely.is.that.you.would.recommend.Max.Healthcare.to.a.friend.or.colleague。 :int 9 7 6 4 7 8 10 6 1 NA ...
       $ Any.additional.suggestions.or.comments:因子w / 31级&#34;&#34;,&#34;不,#34;,&#34; Abhinz很好&#34;,..:28 29 18 21 31 NA 28 30 6 1 ...
       $ Help.us.recognize.any.of.our.staff.who.served.you.exceptionally.well..by.providing.his.her.name。 :logi NA NA NA NA NA NA ...
       $ A.:因子w / 25级&#34;&#34;,&#34; Abhinav&#34;,&#34; Abhinav&#34;,..:21 21 21 20 14 8 9 12 16 1 ...
       $ B.:因子w / 24级&#34;&#34;,&#34; Abhinav&#34;,&#34; balu&#34;,..:21 18 19 20 14 10 16 22 1 1 ...
       $ C.:因子w / 17级&#34;&#34;,&#34; Chiya&#34;,&#34; Dimple&#34;,..:1 15 1 7 9 1 3 4 1 1。 ..

我收到错误&#34; $运算符对原子向量无效&#34;。 有人可以提出建议。

感谢。

2 个答案:

答案 0 :(得分:3)

错误似乎是由于selectedData正在返回一个向量而不是data.frame,但您尝试将其用作data.frame。

您需要从selectedData显式返回完整的data.frame(例如,在该函数的底部添加return(a))。然后,您需要在selectedData()来电中实际呼叫renderPlot(例如,以a <- selectedData()中的output$plot1开头)

答案 1 :(得分:2)

我意识到这是一个旧回复,你可能已经解决了这个问题。对于那些有可怕$ operator is invalid for atomic vectors消息的人来说,这更多。对于那些具有&gt;核熔化&lt;核熔化&lt;见下文...

  1. 您是否尝试更新shinyapps ?您必须从他们的github执行此操作而不是正常方式(如在Rstudio更新包按钮中),而是从R命令行执行此操作。

    a)获取devtools(如果你没有)

    install.packages('devtools')
    

    b)从命令行重新安装闪亮的应用

    devtools::install_github('rstudio/shinyapps')
    
  2. 线索到&#34;哪里出错?&#34; 查看邮件前面的文字,因为它可能有助于追踪它。我的是:

      

    帐户$ server出错:$ operator对原子向量无效

    这表明闪亮的服务器端问题比我的代码更多。这是shinyapps的新角色中的一个错误,更新shinyapps版本清除了我的原子错误。

  3. 我希望Aarithmo你说得对。调试闪亮很棘手。请注意,您可以将browser()语句放在闪亮的代码中进行调试。它会在那时停止代码,并检查变量是否存在问题。