R 如何获得一个闪亮的反应式数据表输出,然后对过滤后的数据应用一个函数?
我可能完全走错了方向,但我真的可以在如何做这件事上提供一些指导 我的数据集是一个R 如何获得一个闪亮的反应式数据表输出,然后对过滤后的数据应用一个函数?,r,shiny,aggregate,r-markdown,R,Shiny,Aggregate,R Markdown,我可能完全走错了方向,但我真的可以在如何做这件事上提供一些指导 我的数据集是一个data.frame,我编写了一个反应式脚本,在用户单击按钮时根据一列对其进行过滤。当我在下面的脚本中输入renderDataTable之后输入filtered.data()时,我可以查看输出表,但我想要的是将aggregate函数应用于输出数据并查看该输出 简而言之,我想过滤我的数据帧,然后对过滤后的数据应用一个函数,并输出结果 一个不起作用的例子: library(shiny) library(DT) libra
data.frame
,我编写了一个反应式脚本,在用户单击按钮时根据一列对其进行过滤。当我在下面的脚本中输入renderDataTable
之后输入filtered.data()
时,我可以查看输出表,但我想要的是将aggregate
函数应用于输出数据并查看该输出
简而言之,我想过滤我的数据帧,然后对过滤后的数据应用一个函数,并输出结果
一个不起作用的例子:
library(shiny)
library(DT)
library(dplyr)
# Make a data frame
weight <- c(1,3,4,7,8,9,12)
material <- c("Wood", "Wood", "Steel", "Steel", "Rock", "Rock", "Rock")
df <- data.frame(weight, material)
shinyApp(
ui = fluidPage(
selectInput("type", "Material:",
choices = as.character(unique(df$material))),
actionButton("Filter", "Set Filter"),
DT::dataTableOutput("filtered.result")
),
#server.r
server = function(input, output) {
filtered.data <- eventReactive(input$Filter, {
df %>%
filter(material == input$type)
})
output$filtered.result <- DT::renderDataTable({
aggregate(weight~material, filtered.data, mean)
})
})
库(闪亮)
图书馆(DT)
图书馆(dplyr)
#制作数据帧
重量您可以使用
敏锐的
因此,将服务器代码替换为
server = function(input, output) {
observeEvent(input$Filter, {
output$filtered.result <- DT::renderDataTable({
aggregate(
weight~material,
df %>%
filter(material == input$type),
mean)
})
})
}
server=功能(输入、输出){
observeEvent(输入$Filter{
输出$filtered.result%
过滤器(材料==输入$type),
平均数)
})
})
}
此外,选择input Product event,如果您想在更改输入值后立即更改结果,可以删除按钮并将observeEvent中的第一个参数更改为input$type(或将许多输入更改为“c(input$type1,input$type2)”)