빛나는 모듈과 data.table을 사용하여 앱을 개발하려고하지만 작동 방법을 파악할 수 없습니다. 작은 예제는 모듈의 인수로 data.table, 변수 및 잘라 내기 값을 받고 다음 인수를 사용하여 data.table을 필터링하여 모든 결과를 인쇄해야하는 다음 응용 프로그램입니다.반짝이 모듈 및 data.table 필터 : 예상대로 작동하지 않습니다.
library(shiny)
library(data.table)
name <-c('a','b','c','d','e')
value <- c(2,4,6,8,10)
data <- data.table(name,value)
# MODULE UI
test_UI <- function(id) {
ns <- NS(id)
textOutput(ns("test"))
}
# MODULE Server
test_OUT <- function(input, output, session, df, var, x) {
output$test <- renderText({
d <- df[var > x, ]
print(unique(d$name))
})
}
# App ui
ui <- fluidPage(
test_UI("test")
)
# App server
server <- function(input, output,session){
callModule(test_OUT, "test", data, 'value', 6)
}
# App
shinyApp(ui, server)
결과는 다음과 같습니다
> a b c d e
있어야하는 경우 :
내가 dplyr 또는 필터링의 다른 방법을 사용하는 경우 내가 아는> d e
는,이 작업을해야하지만 필자는 매우 큰 데이터 세트를 다루고 있기 때문에 성능에 대한 data.table이 필요합니다. 미리 감사드립니다.
감사합니다. Nathan! 나는 data.table 문서를 검사 할 것이다. 나는 그것을 "지저분한"방법으로 배웠다. "get"솔루션에 문제가 있습니까? 다시 한 번 감사드립니다. – COLO
'get'은 data.table 바깥에서도 볼 수 있으므로 예기치 않은 동작을 일으킬 수 있습니다. 예를 들어 변수'foo'가'test_OUT'에 할당되고 누군가가'var = "foo"'로 모듈을 호출하면'get (var)'는'foo'를 리턴하지만'df [[var]] 'NULL을 반환합니다. 덕분에 –
. 말 되네. – COLO