[英]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.