私は顧客、品目、販売をリストアップする小さなアプリを持っています。私は、テーブルから参照リストを生成したいが、私はkeybyを使用してリストを注文しようとすると2つの列を取得します。それはおそらく非常にシンプルですが、私は混乱しています。以下のコードは....Rデータからの一意のソートされた行の単一の列。
library(data.table)
company=c("A","S","W","L","T","T","W","A","T","W")
item=c("Thingy","Thingy","Widget","Thingy","Grommit","Thingy","Grommit","Thingy","Widget","Thingy")
sales=c(120,140,160,180,200,120,140,160,180,200)
salesdt<-data.table(company,item,sales)
server <- function(input, output) {
output$theCustomersList <- renderUI({
list(
selectInput("customer", "Choose a customer:",
choices = salesdt[,unique(company), keyby=company]
,selectize=FALSE
,selected="A"
)
)
})
output$result <- renderTable(
salesdt[company%in%c(input$customer),
.(valuesold=sum(sales)), item
]
)
}
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
uiOutput("theCustomersList")
),
mainPanel(tableOutput('result'))
)
)
shinyApp(ui = ui, server = server)
明確にするために....私の質問は、どのように私は1つのカラムをゲットする
salesdt[,unique(company), keyby=company]
を変更するが、注文したんです。
あなたの問題は正確にはわかりません。おそらく 'choices = unique(company)'だけを使うでしょうか? – Jimbou
会社はdata.tableで参照されています.....現実の世界では、私はインポートしているCSVに40kの行があり、そこからユニークなリストが必要です。 – Martyn
なぜ、2つの列が得られるのか、 'salesdt [、unique(company)、keyby = company]'が2つの列を生成しています。ですから、この行を変更する必要があります。 – Jimbou