我正在構建一個網絡應用程序,它使用'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)' –