我正在构建一个网络应用程序,该应用程序使用“twitteR”R 包下载推文,整理这些推文并通过“闪亮”R 网络应用程序显示它们。执行将推文下载并处理到数据框中的代码没有问题:
do.call('rbind', lapply(userTimeline('nutwition_log'), as.data.frame))
...您可以自己在终端中运行它(加载 twitteR 库),然后查看它下载推文数据并将生成的数据帧打印到屏幕上。
但是,当我在“闪亮”应用程序(服务器端)中使用这种调用时......例如......
服务器.R:
library(shiny)
library(twitteR)
shinyServer(function(input, output) {
datasetInput <- reactive(function() {
tweets <- userTimeline(input$subscriber)
do.call('rbind', lapply(tweets, as.data.frame))
})
output$view <- reactiveTable(function() {
head(datasetInput(), n = input$obs)
})
})
ui.R:
library(shiny)
library(twitteR)
shinyUI(pageWithSidebar(
headerPanel('FitnessTrack'),
sidebarPanel(
selectInput("subscriber", "Select Subscriber:",
choices = c("nutwition_log", "anotherAccount")),
numericInput("obs", "Number of observations to view:", 10)
),
mainPanel(
tableOutput("view")
)
))
...我收到以下错误:
Error in as.data.frame.default(X[[1L]], ...) :
cannot coerce class 'structure("status", package = "twitteR")' into a data.frame
Error in as.data.frame.default(X[[1L]], ...) :
cannot coerce class 'structure("status", package = "twitteR")' into a data.frame
Error in as.data.frame.default(X[[1L]], ...) :
cannot coerce class 'structure("status", package = "twitteR")' into a data.frame
...我想要做的就是能够更改正在下载和修改推文的用户,然后将生成的数据框(...datasetInput()
返回,加载到output$view
)输出到mainPanel()
. 我不知道为什么这不起作用。
任何帮助都会很棒!