相信很多刚接触shiny的小白都和我一样,会遇到shinyapps配置失败的问题。因为网站上能找到的教程提供的方法已经out,现在更新之后和以前有所不同。
这是以前的配置方法:
准备工作:
1. 拥有R或像RStudio的集成开发环境
2. R包构建工具:Rtools for windows ; GCC for Linux ; XCode Command Line Tools for Mac
3. R包——devtools,1.4或更高版
4. R包——shinyapps,最新版
当然,在下也对上面的安装方法进行了尝试,首先是Rtools的安装,这个包内存很大,当你的安装过程异常缓慢的时候可以参考我的另一小文:传送门
进入正题,新版本的配置方法如下
step 1:
install.packages('rsconnect')
step 2:
rsconnect::setAccountInfo(name='shihu',
token='……',
secret='<……>')
step 3
library(rsconnect)
rsconnect::deployApp('path/to/your/app')#这里是输入自己app文件路径
也可以先setwd一下工作路径,部署的时候可以直接文件名。如下:
> setwd("F:/pp")
> rsconnect::deployApp('App-1')
分享一个我用shiny和ggplot2制作的第一个demo:功能是通过滑动条来调节直方图的单位间隔:shihu
代码如下:
library(shiny)
library(ggplot2)
ui <- fluidPage(
titlePanel("Hello 世虎!"),
sidebarLayout(
sidebarPanel(
sliderInput(inputId = "bins", #输入的变量名称
label = "直方图每条宽度:", #显示信息
min = 0.1, #滑动条最小值最大值
max = 0.5,
value = 0.1) #初始值
),
mainPanel(
# Output: 直方图----
plotOutput(outputId = "distPlot")
#主面板内只是设置变量或函数名称,具体在server里设置
)
)
)
server <- function(input, output) {
output$distPlot <- renderPlot({
depth_dist <- ggplot(diamonds, aes(depth)) + xlim(58, 68)
depth_dist + geom_histogram(aes(fill = cut), binwidth = input$bins, position = "fill")
})
}
shinyApp(ui = ui, server = server) #创建shiny app