RShiny介绍
是一款可以搭建简洁界面的工具,私认为比Python建立简单的Interface更加友好。前提是有本地的数据库,主要搭建的两个部分:UI 和 Server.
搭建成功的界面
1.UI设计
library(shiny) # 加载包 需先下载
library(ggplot2)
library(RMySQL)
######### 此处正式开始UI设计
ui =fluidPage(
# 界面主要分为三个Panel: tiltlepanel/sidebarpanel/mainpanel
# 1.标题名字
titlePanel("Shiny App"),
# 2.左边界面,即输入界面
sidebarPanel(selectInput("site", # 选项形式的输入
label = "Database",
choices = c("diabetes","looks like","have options"),
selected = "disbetes"),
numericInput("id","user id",0), #数字形式的输入
textInput("begindate", "write start date: ",''), # 文字形式的输入
h5("e.g.'1991-05-26'"), # 显示文字,作为提示,可以删去
textInput("enddate", "write end date:",''),
submitButton("Go!")), # submit
# 3.主界面,即右边的输出界面
mainPanel(h4("The activity record is :"),
tableOutput("mydata"))
)
2. Server
server = (function(input, output) { #function必须用 用括号括起来
## 1.input部分
test1 <- reactive({ # 这个变量名在下面的output部分要用
# 1.1 连接数据库
db_con <- (dbConnect(RMySQL::MySQL(), #填自己的数据库信息
dbname="diabetes",
user="root",
host="127.0.0.1",
password="yourpassword",
port=3306))
# 1.2 Construct the fetching query 这里不知道怎么翻译了
mydata <- dbGetQuery(db_con,paste(
#此处填要查的sql语句,注意引用了输入的变量,即在UI设计时输入的值
"SELECT p.time, a.code_name FROM patient p
join activity a
on a.code = p.code
where id = '",input$id,"' and time between '",input$begindate,"' and '",input$enddate,"'")) # !注意此处的格式
# tips 新建脚本定义好变量,测试查询sql语句是否能用
# 引用格式是 -> ”,要引用的变量,“
})
## 2.output部分
output$mydata <- renderTable({ #显示表格,还可以改成rendertext等
test1() #input变量名
})
})
runApp(list(ui = ui, server = server))
网友评论