我正在构建一个网络应用程序,它使用'twitteR'R软件包下载推文,将这些推文进行整理并通过'闪亮'R Web应用程序进行显示。我有执行该下载和处理的tweet成数据帧的代码没有问题:'闪亮'R包如何处理数据帧?
do.call('rbind', lapply(userTimeline('nutwition_log'), as.data.frame))
...你可以在你的终端(与加载Twitter的库)运行这个自己,看看它下载鸣叫数据并将结果数据帧打印到屏幕上。
但是,当我使用这种call的 '闪亮' 的应用程序(服务器端)...例如...
server.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()
。我不知道为什么这不起作用。
任何帮助将是伟大的!
看起来像一个错误。无论出于何种原因,在调用库(twitteR)时,as.data.frame的方法都不会被复制,因此您应该在http://groups.google.com/group/shiny-discuss报告。甚至可能是一个命名空间问题。当我调整你的代码来使用'twitteR :: as.data.frame'时,它会产生新的错误。 –
这不是一个闪亮的bug。 'as.data.frame(userTimeline(“nutwition_log”))' – GSee
同样的错误虽然奇怪,因为那不是他正在运行的代码。但它就像他一样对待它。他正在运行'lapply(userTimeline(“nutwition_log”),as.data.frame)' –