Tôi đang xây dựng một ứng dụng web tải xuống các tweet bằng gói 'twitteR' R, nhét những tweet đó và hiển thị chúng thông qua ứng dụng web 'sáng bóng' R. Tôi không có vấn đề thực thi mã mà tải và xử lý các tweet vào một khung dữ liệu:Gói 'sáng bóng' R đối phó với các khung dữ liệu như thế nào?
do.call('rbind', lapply(userTimeline('nutwition_log'), as.data.frame))
... bạn có thể chạy trong terminal của bạn (với thư viện Twitter nạp) chính mình và thấy rằng nó tải các tweet dữ liệu và in khung dữ liệu kết quả vào màn hình.
Nhưng, khi tôi sử dụng loại này của cuộc gọi trong một ứng dụng 'bóng' (server-side) ... ví dụ ...
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")
)
))
... tôi nhận được lỗi sau:
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
... tất cả tôi muốn làm là có thể thay đổi người dùng có tweet đang được tải về và munged, sau đó đầu ra khung kết quả dữ liệu (... các datasetInput()
Đổi lại, nạp vào output$view
) đến mainPanel()
. Tôi không biết tại sao điều này không hiệu quả.
Mọi trợ giúp sẽ tuyệt vời!
Trông giống như một lỗi. Bạn nên báo cáo tại: http://groups.google.com/group/shiny-discuss vì bất kỳ lý do gì khiến các phương thức cho as.data.frame không được sao chép khi bạn gọi thư viện (twitteR). Có lẽ ngay cả một vấn đề không gian tên. Khi tôi điều chỉnh mã của bạn để sử dụng 'twitteR :: as.data.frame' nó sẽ phát ra các lỗi mới. –
Đây không phải là lỗi sáng bóng. Bạn nhận được cùng một lỗi với 'as.data.frame (userTimeline (" nutwition_log "))' – GSee
Lạ thay, bởi vì đó không phải là mã anh ta đang chạy. Nhưng nó đối xử với nó như thể anh ta vậy. Anh ta đang chạy 'lapply (userTimeline (" nutwition_log "), as.data.frame)' –