0
私はウィジェットで選択した列の数を変えてデータ出力を大きくしました。列を動的に右揃えしたいのですが、列数が固定されている場合にのみ解決策が見つかりました。私はtarget =コマンドでリファレンスを調整して動的にすることができればと思っていました。何とかこれは動作しませんし、列の数がデフォルトの参照よりも小さい場合、私は出力を得ません。私は、反応性のあるステートメントがデータテーブルオプションを動作させないところを読んでいます。私はMWEを付けました。DTデータテーブルの動的な列の整列
rm(list=ls())
library(shiny)
library(datasets)
library(datatable)
DT<-data.table(matrix(abs(rnorm(100,sd=100000)),nrow=10))
server<-shinyServer(function(input, output) {
# Return the requested dataset
columns <- reactive({
switch(input$columns,
all= c("V1","V2","V3","V4","V5","V6","V7","V8","V9","V10"),
left= c("V1","V2","V3","V4","V5"),
right= c("V6","V7","V8","V9","V10"))
})
# Show table
output$view <- DT::renderDataTable(
format(DT[,.SD,.SDcols=columns()],digits = 0,scientific=F),
option=list(columnDefs=list(list(targets=0:(length(columns())-1), class="dt-right")))
)
})
library(shiny)
# Define UI for dataset viewer application
ui<-shinyUI(fluidPage(
# Application title
titlePanel("Shiny Text"),
# Sidebar with controls to select a dataset and specify the
# number of observations to view
sidebarLayout(
sidebarPanel(
selectInput("columns", label = h3("Select Columns"),
choices = list("All columns" = "all", "Left side" = "left",
"Right side" = "right"), selected = "all")
),
# Show a summary of the dataset and an HTML table with the
# requested number of observations
mainPanel(
DT::dataTableOutput("view")
)
)
))
runApp(list(ui=ui,server=server))
Thxが役に立ったので、私はrenderDataTable()コマンドでreactiveを使ってみましたが、動作しませんでした。また、ターゲットに対してseq()コマンドを使用することをお勧めします。これがデータセット全体では遅すぎるかどうかはわかりますが、唯一の9000行と<30列です。 –