You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在R中重命名并合并行,生成指定格式的DataFrame

调整Shiny代码以输出指定字段的格式化DataFrame

我来帮你修改这段Shiny响应式代码,让它输出你需要的仅包含指定字段的格式化DataFrame:

首先先把你的原代码整理清晰:

myData <- reactive({ 
  age_selected <- input$selected_age 
  gender_selected <- input$selected_gender 
  ethnicity_selected <- input$selected_ethnicity 
  
  df <- with_demo_vars %>% 
    filter(age == age_selected) %>% 
    filter(gender == gender_selected) %>% 
    filter(ethnicity == ethnicity_selected) %>% 
    pct_ever_user(type = "SM") %>%
    mutate(intervals= paste("(",round(ci_l,digits = 3), round(ci_u,digits = 3),sep = "-",")"))
  
  # 你之前尝试选择列的注释未生效,我们来完善这一步
})

接下来只需要在数据处理流程的最后,用select()函数明确指定你想要保留的字段即可。比如假设你需要保留variable、sum_wts、se和生成的intervals列,修改后的代码如下:

myData <- reactive({ 
  age_selected <- input$selected_age 
  gender_selected <- input$selected_gender 
  ethnicity_selected <- input$selected_ethnicity 
  
  df <- with_demo_vars %>% 
    filter(age == age_selected) %>% 
    filter(gender == gender_selected) %>% 
    filter(ethnicity == ethnicity_selected) %>% 
    pct_ever_user(type = "SM") %>%
    # 调整paste写法,让区间格式更规范(避免多余空格)
    mutate(intervals= paste("(", round(ci_l, digits = 3), "-", round(ci_u, digits = 3), ")", sep = "")) %>%
    # 在这里指定你需要的字段,按需求调整字段名称和顺序
    select(variable, sum_wts, se, intervals)
  
  df
})

关键细节说明:

  • select()函数可以精准筛选你需要的列,你可以根据实际需求修改括号内的字段名称(比如如果需要mean列,直接添加进去即可)
  • 我调整了paste的参数,让生成的区间格式更统一(比如变成(0.123-0.456)的样式)
  • 最后确保返回处理后的df,保证响应式对象能正确输出目标DataFrame

这样修改后,你的myData()响应式对象就只会包含你指定的字段,输出格式完全符合你的需求。

内容的提问来源于stack exchange,提问作者SNT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:25:04