Ich baue eine Web-App, die Tweets mit dem "twitteR" -Paket herunterlädt, diese Tweets mischt und sie über eine "glänzende" R-Web-App anzeigt. Ich habe kein Problem, den Code ausführt, die Downloads und die Tweets in einen Datenrahmen verarbeitet:Wie behandelt das "glänzende" R-Paket Datenrahmen?
do.call('rbind', lapply(userTimeline('nutwition_log'), as.data.frame))
... Sie dies in Ihrem Terminal laufen können (mit der TWITTER Bibliothek geladen) selbst und sehen, dass es die Tweet-Downloads Daten und druckt den resultierenden Datenrahmen auf den Bildschirm.
Aber, wenn ich diese Art von Ruf in einem 'glänzend' app (serverseitig) ... zum Beispiel ...
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")
)
))
... ich erhalte den folgenden Fehler:
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
... alles, was ich tun möchte, ist in der Lage sein, den Benutzer, dessen Tweets zu ändern heruntergeladen und munged wird, dann gibt den resultierenden Datenrahmen (... den datasetInput()
Gegenzug geladen output$view
) auf dem mainPanel()
. Ich habe keine Ahnung, warum das nicht funktioniert.
Jede Hilfe wäre großartig!
Sieht aus wie ein Fehler. Sie sollten unter: http://groups.google.com/group/shiny-discuss berichten, aus welchem Grund die Methoden für as.data.frame nicht kopiert werden, wenn Sie die Bibliothek (twitteR) aufrufen. Vielleicht sogar ein Namespace-Problem. Wenn ich den Code für die Verwendung von "twitterR :: as.data.frame" anpasse, pumpt er neue Fehler aus. –
Dies ist kein glänzender Fehler. Sie erhalten den gleichen Fehler mit 'as.data.frame (userTimeline (" nutwition_log "))' – GSee
Seltsam, denn das ist nicht der Code, den er ausführt. Aber es behandelt es so, als wäre er es. Er läuft 'lapply (userTimeline (" nutwition_log "), as.data.frame)' –