我有一個小應用程序,列出了客戶,項目和銷售額。我想從表中生成一個查找列表,但如果我嘗試使用keyby命令列表,將獲得兩列。這可能非常簡單,但我很困惑。下面的代碼....來自R data.table的唯一排序行單列
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)
澄清....我的問題是如何更改
salesdt[,unique(company), keyby=company]
得到得到一個列,但有序。
我不確定你的問題到底是什麼。也許只用'選擇=獨特(公司)'? – Jimbou
該公司在data.table中引用.....在現實世界中,我導入的CSV中有40,000行,我需要從那裏獲取唯一列表。 – Martyn
你在問爲什麼你會得到兩列,'salesdt [,unique(company),keyby = company]'生產2列。所以你必須改變這條線。 – Jimbou