将R的Shiny App部署到网上遇到的一些坑QAQ

假设你的App脚本已经写好了(里面至少包含Server.R和ui.R)


一,Windows下通过cmd执行App

只需两个步骤:
1. 在系统变量Path中添加:E:\你的R安装路径\bin
2. 运行cmd,执行:R -e “shiny::runApp(‘C:\Windows下你的App路径\你的App名称’)”

这个时候呢,cmd会提示里进入到一个网站:127.0.0.1:XXXX,在浏览器点进去就OK啦,
然并卵,这并不算部署到网上=。=



二,使用Windows通过shinyapps.io部署到网上

对,这TM就是个坑QAQ

1, 这需要使用到rsconnect包,关于怎么用rsconnect,请点这个链接:

《Getting started with shinyapps.io》

http://shiny.rstudio.com/articles/shinyapps.html

2, 如果我的推理没错的话,你应该会采用如下步骤:

library(rsconnect)
rsconnect::setAccountInfo(name='你注册时取的名字', token='一长串字符', secret='一长串字符')
rsconnect::deployApp('C:\\Windows下你的App路径\\你的App名称')

3,然后就无情的报错了:

Failed to lint file 'Server.R'
The linter failed with message:
invalid multibyte string at '<8d>'<2c>','乱码')'

4,卧槽,multibyte string是什么鬼 ?_?

在网上查了一下,这个错误应该是数据编码的问题。我读取数据用的是read.csv(),但在Windows下无论怎么改encoding和fileEncoding参数都没有卵用。另外,如果用cmd执行,read.csv()建议使用相对路径(在你的App文件夹下再创建一个data文件夹,把用到的数据放进去,然后read.csv(“.\数据.csv”))。
总而言之我(作为一个菜鸡)感觉,用Windows部署ShinyApp就是一个大坑。没办法,只能改换Linux。



三、使用Linux(CentOS 6)部署

  • Linux的好处是,只要我在Rstudio里面能执行这个App,也就是shinyApp(ui, Server)能执行,跳出来一个网页,那么它保存成Server.R和ui.R之后通过rsconnect就一定能部署到网上。

  • 然后你以为这样就解决问题了?

  • 并没有,还是read.csv()出错,在Windows下,我的命令如下,不会报错

tree=read.csv('数据.csv',header = T)
  • 但是在Linux下,需要改encoding和fileEncoding参数。如果数据里面包含中文,建议将encoding 设为’UTF-8’,fileEncoding 设为 ‘GB2312’(有时候得设成GBK),然后就可以正常使用和展示数据了。
tree=read.csv('数据.csv',header = T,encoding = 'UTF-8', fileEncoding = 'GB2312')
  • App成品网址在下方,测试用的所以做的很简陋:

https://guquq.shinyapps.io/app110/

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值