运行 来自网站的 R 代码(没有付费托管)
Running R code from website (without paid hosting)
有很多相关问题,但都是关于 Shiny R 的,这需要付费托管始终可用(因为 shinyapps.io 等免费选项有限制)。所以我想知道是否有任何替代解决方案可以从托管的网站(例如 GitHub.
中获取 运行ning R 代码
更清楚地说,我想根据用户给出的一些基本设置,使用 R 脚本以交互方式显示一些绘图和一些派生信息。举个超级简单的例子:
var_from_gui = 7 # input in HTML, user e.g. clicks OK
print(paste("input plus five is:", var_from_gui + 5)) # info displayed on website
plot(c(1, 2, 5) * var_from_gui) # image to be displayed on website
首先,我认为这在 Shiny R 中是很有可能的 - 对吗?
其次,这是否可能以另一种方式允许我通过例如 运行 GitHub 页? (实际上我也可以使用 this more comprehensive university server,但我认为它对这种情况没有帮助。)
我也知道 htmlwidgets
,但是,据我所知,它只允许非常有限的交互,例如过滤,而不是诸如基于用户输入的绘图之类的东西。
我找到的一个选项似乎很适合 OpenCPU,但令人沮丧的是明显缺乏 activity(没有最近的 questions/answers/posts 等),几乎没有任何有用的教程或概述,这也让人很难评估是否值得尝试。
对于最多 5 个流量很小的小应用程序,您可以在 https://www.shinyapps.io/
上使用免费计划
- 非常容易部署,因为它是一个 RStudio 服务
您可以免费在 public OpenCPU server 上托管您的 R 函数。
我已经为我自己的应用程序完成了这项工作并且效果很好。 None 您在问题中列出的限制。还尝试了 Shiny,但正如您所提到的,它不够灵活,无法实现我想要实现的目标。
OpenCPU 确实是一个很棒的工具,虽然没有得到社区的很好支持(不知道为什么,看看它带来的巨大价值)
我按照文档 here 进行了设置并 运行。设置有点乏味,但有据可查。
一旦上线,我发现这个服务器非常可靠——你的 R 函数持续可用,延迟非常低(根据我的经验,比 Shiny 服务器快得多)
您还要求“来自托管网站的 运行 R 代码的解决方案,例如,在 GitHub” - OpenCPU 确实处理CD/CI(持续集成)来自您的自定义 GitHub 存储库,通过 webhook 机制。
我还为我的应用程序实现了这样的 webhook,因此可以确认它运行顺利。只需按照 well-written 提供的文档 here.
现在我想我可以回答我自己的问题了——尽管 Marc 的回答一般来说似乎也很有用(并提示我写下我自己的答案)。
本质上,shinyapps.io worked 对我来说非常好。对于小型且不太常用的应用程序,免费计划就足够了。更重要的是,即使在不太可能的情况下网站因过度使用而崩溃,R 用户也有可能从他们自己的计算机上轻松 运行 Shiny 应用程序(前提是他们安装了 R)。
当然,问题中给出的示例很可能在 Shiny R 中实现:通常代码是通过 eventReactive
函数执行的,对于“触发”按钮,可以使用actionButton
.
有很多相关问题,但都是关于 Shiny R 的,这需要付费托管始终可用(因为 shinyapps.io 等免费选项有限制)。所以我想知道是否有任何替代解决方案可以从托管的网站(例如 GitHub.
中获取 运行ning R 代码更清楚地说,我想根据用户给出的一些基本设置,使用 R 脚本以交互方式显示一些绘图和一些派生信息。举个超级简单的例子:
var_from_gui = 7 # input in HTML, user e.g. clicks OK
print(paste("input plus five is:", var_from_gui + 5)) # info displayed on website
plot(c(1, 2, 5) * var_from_gui) # image to be displayed on website
首先,我认为这在 Shiny R 中是很有可能的 - 对吗?
其次,这是否可能以另一种方式允许我通过例如 运行 GitHub 页? (实际上我也可以使用 this more comprehensive university server,但我认为它对这种情况没有帮助。)
我也知道 htmlwidgets
,但是,据我所知,它只允许非常有限的交互,例如过滤,而不是诸如基于用户输入的绘图之类的东西。
我找到的一个选项似乎很适合 OpenCPU,但令人沮丧的是明显缺乏 activity(没有最近的 questions/answers/posts 等),几乎没有任何有用的教程或概述,这也让人很难评估是否值得尝试。
对于最多 5 个流量很小的小应用程序,您可以在 https://www.shinyapps.io/
上使用免费计划- 非常容易部署,因为它是一个 RStudio 服务
您可以免费在 public OpenCPU server 上托管您的 R 函数。
我已经为我自己的应用程序完成了这项工作并且效果很好。 None 您在问题中列出的限制。还尝试了 Shiny,但正如您所提到的,它不够灵活,无法实现我想要实现的目标。
OpenCPU 确实是一个很棒的工具,虽然没有得到社区的很好支持(不知道为什么,看看它带来的巨大价值)
我按照文档 here 进行了设置并 运行。设置有点乏味,但有据可查。
一旦上线,我发现这个服务器非常可靠——你的 R 函数持续可用,延迟非常低(根据我的经验,比 Shiny 服务器快得多)
您还要求“来自托管网站的 运行 R 代码的解决方案,例如,在 GitHub” - OpenCPU 确实处理CD/CI(持续集成)来自您的自定义 GitHub 存储库,通过 webhook 机制。 我还为我的应用程序实现了这样的 webhook,因此可以确认它运行顺利。只需按照 well-written 提供的文档 here.
现在我想我可以回答我自己的问题了——尽管 Marc 的回答一般来说似乎也很有用(并提示我写下我自己的答案)。
本质上,shinyapps.io worked 对我来说非常好。对于小型且不太常用的应用程序,免费计划就足够了。更重要的是,即使在不太可能的情况下网站因过度使用而崩溃,R 用户也有可能从他们自己的计算机上轻松 运行 Shiny 应用程序(前提是他们安装了 R)。
当然,问题中给出的示例很可能在 Shiny R 中实现:通常代码是通过 eventReactive
函数执行的,对于“触发”按钮,可以使用actionButton
.