部署Shiny应用程序打破了关键点;无法指定非vctrs类型的原型

问题描述 投票:0回答:1

很难为此提供一个代表,因为仅当我使用应用程序的已部署版本时才会出现此问题,但是我希望我能提供足够的详细信息,以便有人能够帮助我理解导致问题的原因。我正在使用ivot_longer在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运行应用程序时,此枢纽工作得很好,我得到了预期的结果:

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

有趣的是,collect()很好用,但是如果我能解决问题,我宁愿使用数据透视:

final_table <<- display_table  %>%
  gather("Station", "Values", -c("Project", "Sample_Type", "Date", "Parameters", "Units")) %>%
  select("Project", "Sample_Type", "Date", "Station", "Parameters", "Values", "Units")
r shiny pivot deployr vctrs
1个回答
0
投票

TaylorV的commnet确实有助于我找到解决方案。需要将我的vctrs软件包更新到RStudio使用的版本0.3.0。,但是在同事计算机上编译的已部署应用程序具有较旧的版本。

我刚刚从app / library文件夹中删除了旧的vctrs文件夹,并从我的个人RStudio库中复制粘贴了较新的版本。问题已解决。

© www.soinside.com 2019 - 2024. All rights reserved.