将 RShiny 应用程序重新编码为 React 应用程序 - 如何将我的数据获取到我的 React 应用程序
Recoding RShiny app into React App - how to get my data to my React App
我正在学习我想要/正在尝试制作的与篮球相关的数据可视化 Web 应用程序的全栈开发。考虑到我的技术技能,我有一个关于解决我的数据问题的最佳方法的问题。
几个月前,我使用 R 创建了 following R Shiny App。这个应用程序的我的堆栈/非常不完整的后端是:
- 我使用 R Shiny 启动应用程序,托管在带有 Shiny Server 的 EC2 实例上
- 在 R 中,我有一个名为 scraper.R 的脚本,它每天(每天一次)查询来自 MySportsFeed 的数据,一项伟大的运动 API,并将新的每日数据更新到我拥有的 8 个 CSV 文件中的 1 个。 (我的 Shiny 应用程序中的每个图表都有不同的 CSV 文件)
- 我的 R Shiny 应用然后将 CSV 读入 app.R 文件,该文件包含整个应用的所有代码。
为了扩展此应用程序并使其变得更好,我一直在学习全栈 javascript 开发,并且我即将开始将此 Shiny 应用程序编码为 React 应用程序。
我目前的挑战/考虑是我应该如何管理我的 React 应用程序中的数据。特别是:
我的 scraper.R 文件使用 dplyr 和其他 R 库进行 大量 数据操作。从 MySportsFeed 的 API 提供的表格中获取数据,到我的 Shiny App 所需的表格, 我所有的图形和图表 ,是相当多的。
话虽如此,我想继续使用 R 调用 MySportsFeed API 并格式化数据。我当然想取消 CSV 文件,但这并不容易。 8 个 CSV 文件中的每一个都包含对 MySportsFeed API 的数百次调用的结果。 (每次 API 调用 MySportsFeed 可能会给我 1 场 NBA 比赛数据,而 CSV 文件已经更新了 1000 场 NBA 比赛数据)。
我想我想替换 (a) 从 CSV 文件读取数据到 R Shiny 应用程序,(b) 使用托管的数据馈送调用我自己的 API 端点(我可以在 R 或 Javascript 中创建 API 端点,R 的水管工对此很有用)
我想我想将 (a) 将数据存储在 CSV 文件中替换为 (b) 将数据存储在 mongo 数据库中,该数据库可轻松插入 React 应用程序。
那么我的问题是:有没有一种直观的方法可以将以下内容连接在一起:
- 我的 R 代码(调用 MySportsFeed API,获取新数据,并将该数据处理成图表格式)
- 一个 API(无论是 R 管道工 API 还是 javascript API 都有我所有的数据)
- mongo 数据库(保存我所有的历史废弃数据)。
提前致谢。
编辑 - 几个月前我在一个 RShiny 应用程序上做了一个 post 我想把它变成一个 React 应用程序。
我认为您应该研究一下 OpenCPU - 它为您完成大部分工作(HTTP API 到您的 R 代码)开箱即用,而且它的可扩展性仅为闪亮的服务器专业版。不过,它需要将您的代码转换为 R 包。
可以通过 mongolite
库连接到 MongoDB,但除非您出于某种原因需要非结构化数据存储(不确定您抓取的提要是否稳定),SQL 当数据库性能下降时,数据库可能更容易处理(我发现调试性能问题 MongoDB 更难)。
我无法评论 React,因为我对 JS 几乎一无所知,但显然人们已经将 OpenCPU 与 ReactJS 结合起来:https://github.com/sdeboudt/reactr
我正在学习我想要/正在尝试制作的与篮球相关的数据可视化 Web 应用程序的全栈开发。考虑到我的技术技能,我有一个关于解决我的数据问题的最佳方法的问题。
几个月前,我使用 R 创建了 following R Shiny App。这个应用程序的我的堆栈/非常不完整的后端是:
- 我使用 R Shiny 启动应用程序,托管在带有 Shiny Server 的 EC2 实例上
- 在 R 中,我有一个名为 scraper.R 的脚本,它每天(每天一次)查询来自 MySportsFeed 的数据,一项伟大的运动 API,并将新的每日数据更新到我拥有的 8 个 CSV 文件中的 1 个。 (我的 Shiny 应用程序中的每个图表都有不同的 CSV 文件)
- 我的 R Shiny 应用然后将 CSV 读入 app.R 文件,该文件包含整个应用的所有代码。
为了扩展此应用程序并使其变得更好,我一直在学习全栈 javascript 开发,并且我即将开始将此 Shiny 应用程序编码为 React 应用程序。
我目前的挑战/考虑是我应该如何管理我的 React 应用程序中的数据。特别是:
我的 scraper.R 文件使用 dplyr 和其他 R 库进行 大量 数据操作。从 MySportsFeed 的 API 提供的表格中获取数据,到我的 Shiny App 所需的表格, 我所有的图形和图表 ,是相当多的。
话虽如此,我想继续使用 R 调用 MySportsFeed API 并格式化数据。我当然想取消 CSV 文件,但这并不容易。 8 个 CSV 文件中的每一个都包含对 MySportsFeed API 的数百次调用的结果。 (每次 API 调用 MySportsFeed 可能会给我 1 场 NBA 比赛数据,而 CSV 文件已经更新了 1000 场 NBA 比赛数据)。
我想我想替换 (a) 从 CSV 文件读取数据到 R Shiny 应用程序,(b) 使用托管的数据馈送调用我自己的 API 端点(我可以在 R 或 Javascript 中创建 API 端点,R 的水管工对此很有用)
我想我想将 (a) 将数据存储在 CSV 文件中替换为 (b) 将数据存储在 mongo 数据库中,该数据库可轻松插入 React 应用程序。
那么我的问题是:有没有一种直观的方法可以将以下内容连接在一起:
- 我的 R 代码(调用 MySportsFeed API,获取新数据,并将该数据处理成图表格式)
- 一个 API(无论是 R 管道工 API 还是 javascript API 都有我所有的数据)
- mongo 数据库(保存我所有的历史废弃数据)。
提前致谢。
编辑 - 几个月前我在一个 RShiny 应用程序上做了一个 post
我认为您应该研究一下 OpenCPU - 它为您完成大部分工作(HTTP API 到您的 R 代码)开箱即用,而且它的可扩展性仅为闪亮的服务器专业版。不过,它需要将您的代码转换为 R 包。
可以通过 mongolite
库连接到 MongoDB,但除非您出于某种原因需要非结构化数据存储(不确定您抓取的提要是否稳定),SQL 当数据库性能下降时,数据库可能更容易处理(我发现调试性能问题 MongoDB 更难)。
我无法评论 React,因为我对 JS 几乎一无所知,但显然人们已经将 OpenCPU 与 ReactJS 结合起来:https://github.com/sdeboudt/reactr