Shiny响应式环境修改不生效?报错object 'int3summary'未找到如何解决?
问题解决方法
错误原因
- 变量名拼写不匹配:你代码中定义的汇总数据框名为
int3_summary(包含下划线),报错提示找不到的int3summary没有下划线,请先排查你实际运行的所有代码中是否存在漏写下划线的拼写错误。 - 不符合Shiny响应式语法规范:你直接在
reactive()中为output对象赋值是错误用法,reactive()的作用是定义可缓存的响应式计算逻辑、返回计算结果,output对象必须搭配对应类型的render*函数使用。 - 字段未定义:你在
summarise()中仅生成了original_cvd_count字段,后续代码调用的old_cvd_count字段不存在,拼写修正后会触发新的报错。
修正后的代码示例
# 定义响应式表达式,返回处理好的汇总数据 int3_summary_react <- reactive({ dataset %>% group_by(age_group) %>% summarise( original_cvd_count = sum(as.numeric(s723d)), meanSBP = mean(sb16s, na.rm = T), meanDBP = mean(sb16d, na.rm = T), new_cvd_count = 0, # 补充你业务逻辑中old_cvd_count的实际计算规则即可 old_cvd_count = sum(as.numeric(对应字段名), na.rm = T) ) }) # 单独定义output的渲染逻辑,如输出文本用renderText、输出表格用renderTable output$result <- renderText({ # 调用响应式表达式的返回值需要加括号 int3_summary <- int3_summary_react() sum(int3_summary$new_cvd_count - int3_summary$old_cvd_count) })
内容的提问来源于stack exchange,提问作者dismal-audience
相关产品推荐
相关产品推荐

