很难为此提供一个代表,因为仅当我使用应用程序的已部署版本时才会出现此问题,但是我希望我能提供足够的详细信息,以便有人能够帮助我理解导致问题的原因。我正在使用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")
TaylorV的commnet确实有助于我找到解决方案。需要将我的vctrs软件包更新到RStudio使用的版本0.3.0。,但是在同事计算机上编译的已部署应用程序具有较旧的版本。
我刚刚从app / library文件夹中删除了旧的vctrs文件夹,并从我的个人RStudio库中复制粘贴了较新的版本。问题已解决。