簡體   English   中英

部署 Shiny 應用程序會破壞 pivot; 無法指定具有非 vctrs 類型的原型

[英]Deploying Shiny app breaks pivot; Can't specify a prototype with non-vctrs types

很難為此提供一個代表,因為該問題僅在我使用我的應用程序的部署版本時發生,但我希望我可以提供足夠的詳細信息,以便有人能夠幫助我了解導致問題的原因。 我正在使用 pivot_longer 到 pivot 一個表上的按鈕按下 Shiny。 我的表格有點復雜,因為表格中的某些“單元格”必須包含一個列表,不確定這是否是問題的一部分:

display_table <- tribble(~Project, ~Sample_Type, ~Date, ~Parameters, ~Units, ~A1, ~A7,       
"PL", "A", "14-May-2020",  "ARRIVE TIME", "", "10:00 am", "11:15 am",
"PL", "A", "14-May-2020",  "DEPART TIME", "", "10:20 am", "11:37 am",
"PL", "A", "14-May-2020",  "CREW", "", c("Joe", "Moe"), c("Jane", "Jack"))


final_table <<- display_table  %>%
  pivot_longer(
    .,
    cols = -c("Project", "Sample_Type", "Date", "Parameters", "Units"),
    names_to = "Station",
    values_to = "Values"
  )

當我從 RStudio 運行應用程序時,這個 pivot 工作得很好,我得到了預期的結果:

Project Sample_Type Date        Parameters  Units Station Values
1   PL  A           14-May-2020 ARRIVE TIME       A1      10:00 am
2   PL  A           14-May-2020 ARRIVE TIME       A7      11:15 am
3   PL  A           14-May-2020 DEPART TIME       A1      10:20 am
4   PL  A           14-May-2020 DEPART TIME       A7      11:37 am
5   PL  A           14-May-2020 CREW              A1      c("Joe", "Moe")
6   PL  A           14-May-2020 CREW              A7      c("Jane", "Jack")

但是,在部署時(使用 DesktopDeployR 或 RInno),按下按鈕時屏幕變為灰色並且應用程序掛起。 這是在錯誤日志中:

Warning: Error in : Can't specify a prototype with non-vctrs types.
vctrs methods must be implemented for class `AsIs`.
See <https://vctrs.r-lib.org/articles/s3-vector.html>.
  91: vec_c
  90: pivot_longer_spec
  89: pivot_longer
  88: function_list[[k]]
  86: freduce
  85: _fseq
  84: eval
  83: eval
  81: %>%
  80: observeEventHandler [C:\Users\smith\OneDrive\Documents\R\work_stuff\DesktopDeployR\app\shiny\/server.R#1353]
   9: shiny::runApp
application terminated normally

有趣的是,gather() 工作得很好,但如果我能解決這個問題,我寧願使用 pivot:

final_table <<- display_table  %>%
  gather("Station", "Values", -c("Project", "Sample_Type", "Date", "Parameters", "Units")) %>%
  select("Project", "Sample_Type", "Date", "Station", "Parameters", "Values", "Units")

TaylorV 的評論對我找到解決方案非常有幫助。 需要將我的 vctrs package 更新到 0.3.0 版,RStudio 正在使用該版本,但是在同事計算機上編譯的已部署應用程序的版本較舊。

我剛剛從 app/library 文件夾中刪除了舊的 vctrs 文件夾,並從我的個人 RStudio 庫中復制粘貼了較新的版本。 問題解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM