Я создаю веб-приложение, которое загружает твиты, используя пакет "twitteR" R, обрабатывая эти твиты и отображая их через "блестящее" веб-приложение. У меня нет проблем с выполнением кода, который загружает и обрабатывает твиты в кадре данных:
do.call('rbind', lapply(userTimeline('nutwition_log'), as.data.frame))
... вы можете запустить это в своем терминале (с загруженной библиотекой twitteR) и увидеть, что он загружает данные твита и выводит результирующий кадр данных на экран.
Но когда я использую этот вид вызова в "блестящем" приложении (на стороне сервера)... например...
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()
return, загруженный в output$view
) в mainPanel()
. Я понятия не имею, почему это не работает.
Любая помощь будет замечательной!