将 RData 加载到 Shiny - 数据加载到 R 工作区但不加载到 Shiny,没有产生错误
Load RData into Shiny - data loaded in R workspace but not in Shiny, no errors produced
Objective: 我想下载我在 GitHub
上传到 Shiny
应用程序,并将数据集用于各种绘图目的。
技术: 我正在使用 repmis
包中的 source_data
函数将数据加载到我的 R 会话中。此加载发生在 global.R
文件中,因此我确定加载的任何数据都可用于 server.R
文件中的绘图函数。
问题: 如果我将所有函数从 global.R
转移到 server.R
但就在 shinyServer()
函数。
但是,没有 数据可用于 Shiny
应用程序,不会产生任何错误,只是没有任何内容可用于绘制,甚至无法使用 dim()
.[= 检查31=]
类似问题:有一个类似的问题here,但我没有从中得到任何帮助——反正我是在加载数据Global.R
而不是 server.R
或 ui.R
.
另一个问题是 here,但是用户将数据读入反应源。我的数据不会改变,所以我将它加载到 global.R
文件中。
Global.R
#global.R
#-------------------- Loading Libraries ------------------------#
library(repmis)
library(lubridate)
library(dplyr)
library(xts)
library(dygraphs)
#-------------------- Loading required data from GitHub Repo -------------------------#
source_data('https://github.com/aliarsalankazmi/SHB_FB_App/raw/master/Data/shbPageData.RData')
#-------------------- Manipulating data for further processing -------------------------#
shb$created_date <- ymd(gsub('T.*', '', shb$created_time))
pageData <- tbl_df(shb) %>%
arrange(created_date)
byDay <- pageData %>%
group_by(created_date) %>%
select(created_date, comments_count, likes_count, shares_count) %>%
summarise(totalPosts = n(),
totalLikes = sum(likes_count),
totalComments = sum(comments_count),
totalShares = sum(shares_count)) %>%
arrange(created_date)
#-------------------- Manipulating data for an Overall View -------------------------#
byDayxts <- as.xts(x = as.matrix(as.data.frame(byDay[,colnames(byDay) != 'created_date'])), order.by = byDay$created_date)
Server.R
#server.R
library(shiny)
library(dygraphs)
shinyServer(function(input, output, session) {
#---------------------- Plotting for a General Overview --------------------#
totalOverview <- renderDygraph({
byDayxts[, colnames(byDayxts) == 'totalPosts'] %>%
dygraph(main = 'Total Posts per Day Since Beginning', group = 'overall') %>%
dyAxis('x', drawGrid = FALSE) %>%
dySeries('totalPosts', label = 'Total Posts') %>%
dyOptions(includeZero = TRUE, gridLineColor = "lightblue", colors = '#d8b365') %>%
dyRangeSelector()
})
})
Ui.R
#ui.R
library(shiny)
library(dygraphs)
shinyUI(fluidPage(
titlePanel(h1("Facebook Data Analysis")),
tabsetPanel(
tabPanel("Graphs",
fluidRow(
column(width = 6, dygraphOutput("totalOverview"))
)
)
)
)
)
应该是:
output$totalOverview <- renderDygraph({ ... })
不是:
totalOverview <- renderDygraph({ ... })
Objective: 我想下载我在 GitHub
上传到 Shiny
应用程序,并将数据集用于各种绘图目的。
技术: 我正在使用 repmis
包中的 source_data
函数将数据加载到我的 R 会话中。此加载发生在 global.R
文件中,因此我确定加载的任何数据都可用于 server.R
文件中的绘图函数。
问题: 如果我将所有函数从 global.R
转移到 server.R
但就在 shinyServer()
函数。
但是,没有 数据可用于 Shiny
应用程序,不会产生任何错误,只是没有任何内容可用于绘制,甚至无法使用 dim()
.[= 检查31=]
类似问题:有一个类似的问题here,但我没有从中得到任何帮助——反正我是在加载数据Global.R
而不是 server.R
或 ui.R
.
另一个问题是 here,但是用户将数据读入反应源。我的数据不会改变,所以我将它加载到 global.R
文件中。
Global.R
#global.R
#-------------------- Loading Libraries ------------------------#
library(repmis)
library(lubridate)
library(dplyr)
library(xts)
library(dygraphs)
#-------------------- Loading required data from GitHub Repo -------------------------#
source_data('https://github.com/aliarsalankazmi/SHB_FB_App/raw/master/Data/shbPageData.RData')
#-------------------- Manipulating data for further processing -------------------------#
shb$created_date <- ymd(gsub('T.*', '', shb$created_time))
pageData <- tbl_df(shb) %>%
arrange(created_date)
byDay <- pageData %>%
group_by(created_date) %>%
select(created_date, comments_count, likes_count, shares_count) %>%
summarise(totalPosts = n(),
totalLikes = sum(likes_count),
totalComments = sum(comments_count),
totalShares = sum(shares_count)) %>%
arrange(created_date)
#-------------------- Manipulating data for an Overall View -------------------------#
byDayxts <- as.xts(x = as.matrix(as.data.frame(byDay[,colnames(byDay) != 'created_date'])), order.by = byDay$created_date)
Server.R
#server.R
library(shiny)
library(dygraphs)
shinyServer(function(input, output, session) {
#---------------------- Plotting for a General Overview --------------------#
totalOverview <- renderDygraph({
byDayxts[, colnames(byDayxts) == 'totalPosts'] %>%
dygraph(main = 'Total Posts per Day Since Beginning', group = 'overall') %>%
dyAxis('x', drawGrid = FALSE) %>%
dySeries('totalPosts', label = 'Total Posts') %>%
dyOptions(includeZero = TRUE, gridLineColor = "lightblue", colors = '#d8b365') %>%
dyRangeSelector()
})
})
Ui.R
#ui.R
library(shiny)
library(dygraphs)
shinyUI(fluidPage(
titlePanel(h1("Facebook Data Analysis")),
tabsetPanel(
tabPanel("Graphs",
fluidRow(
column(width = 6, dygraphOutput("totalOverview"))
)
)
)
)
)
应该是:
output$totalOverview <- renderDygraph({ ... })
不是:
totalOverview <- renderDygraph({ ... })