CoolFace
Apppublic

sugitora/CCS_Act_DataBase

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
app.R63 linesDownload Raw Back to root
1if (!requireNamespace("DT", quietly = TRUE)) {2  stop("DT package not available")3}4 5library(shiny)6library(DT)7library(dplyr)8library(readr)9 10# ファイル読み込み11act01 <- read_csv("data/CCS_Act01.csv") %>% mutate(法分類 = "法律")12act02 <- read_csv("data/CCS_Act02.csv") %>% mutate(法分類 = "政令")13act03 <- read_csv("data/CCS_Act03.csv") %>% mutate(法分類 = "省令")14 15# データ統合16law_data <- bind_rows(act01, act02, act03)17 18# UI定義19ui <- fluidPage(20  titlePanel("法令データベース検索(CCS法体系プロトタイプ)"),21  sidebarLayout(22    sidebarPanel(23      selectInput("law_type", "法分類を選択:", 24                  choices = c("すべて", unique(law_data$法分類)), 25                  selected = "すべて"),26      textInput("keyword", "キーワード検索:", ""),27      actionButton("search", "検索実行")28    ),29    mainPanel(30      DTOutput("table")31    )32  )33)34 35# サーバ定義36server <- function(input, output, session) {37  38  filtered_data <- eventReactive(input$search, {39    data <- law_data40    41    if (input$law_type != "すべて") {42      data <- filter(data, 法分類 == input$law_type)43    }44    45    if (input$keyword != "") {46      data <- filter(data, grepl(input$keyword, 条文テキスト, ignore.case = TRUE))47    }48    49    data50  }, ignoreNULL = FALSE)51  52  output$table <- renderDT({53    datatable(54      filtered_data(), 55      options = list(pageLength = 15, autoWidth = TRUE),56      rownames = FALSE57    )58  })59}60 61# アプリ起動62shinyApp(ui = ui, server = server)63