Linux安装R语言shiny包,R语言用Shiny包快速搭建交互网页应用
Shiny包的特點在于不需要了解網頁語言,可以用純R來搭建。生成的網頁應用是動態交互,而且是即時更新的。Shiny還提供了現成組件方便快速在網頁上展示數據、圖表和模型,的確是非常的炫。
首先安裝Shiny包:
options(repos = c(RStudio = 'http://rstudio.org/_packages', getOption('repos')))
install.packages('shiny')
install.packages('digest')
install.packages('htmltools')
install.packages('httpuv')
再寫兩個R代碼文件:一個是負責前端的ui.R,另一個是負責后端的server.R。
library(httpuv)
library(htmltools)
library(digest)
library(shiny)
library(ggplot2)
shinyUI(bootstrapPage(
selectInput(inputId = "n_breaks",
label = "Number of bins in histogram (approximate):",
choices = c(10, 20, 35, 50),
selected = 20),
checkboxInput(inputId = "individual_obs",
label = strong("Show individual observations"),
value = FALSE),
checkboxInput(inputId = "density",
label = strong("Show density estimate"),
value = FALSE),
plotOutput(outputId = "main_plot", height = "300px"),
# Display this only if the density is shown
conditionalPanel(condition = "input.density == true",
sliderInput(inputId = "bw_adjust",
label = "Bandwidth adjustment:",
min = 0.2, max = 2, value = 1, step = 0.2)
)
))
server.R的代碼如下:
library(shiny)
library(ggplot2)
shinyServer(function(input, output) {
output$main_plot
hist(faithful$eruptions,
probability = TRUE,
breaks = as.numeric(input$n_breaks),
xlab = "Duration (minutes)",
main = "Geyser eruption duration")
if (input$individual_obs) {
rug(faithful$eruptions)
}
if (input$density) {
dens
adjust = input$bw_adjust)
lines(dens, col = "blue")
}
})
})
將這兩個代碼文件存放到同一個文件夾下,例如我是放在在"C:/Users/cdas3/Documents/R/R-program/shiny-app"。最后在控制臺下運行:
library(shiny)
runApp("C:/Users/cdas3/Documents/R/R-program/shiny-app")
之后R會自動打開系統默認的瀏覽器,并展示出如下的界面。
R-shiny.png
Shiny包的缺點:在部署分享方面,Shiny包只能在本地瀏覽器展示應用。如果要分享給其它人的話,需要將R代碼傳到網盤或打包分發,而對方也需要使用runApp命令來進行本地展示。RStudio團隊正在開發Shiny服務器構架,讓使用者僅需要一個瀏覽器和網址就可以運行網頁應用。不過這將是一個收費的服務。
總結
以上是生活随笔為你收集整理的Linux安装R语言shiny包,R语言用Shiny包快速搭建交互网页应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 蒙特卡洛随机椭圆投点
- 下一篇: 为什么99%的旅游规划公司都在忽悠?为什