在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
相关产品推荐
相关产品推荐

