我有R脚本,用于计算在一个订单中获取每对产品的比例,我创建了一个闪亮的应用程序来查看我的结果My App 这是我的服务器代码
server <- function(input,output){
data<- reactive({
DF %>% filter(FirstItem == input$Item, X.Correlation > 0, SecondItem != input$Item) %>% arrange(desc(X.Correlation))
})
output$Itemcorr <- renderTable({data()})
output$plot <- renderPlot({
barplot(data()$X.Correlation,main="X.Correlation Distribution",
xlab="SecondItems",ylab="Percent",xlim=c(1,60),ylim = c(0,100),
col=c("darkblue","red"),names.arg =data()$SecondItem)
})
}
但我想在我的应用中添加另一列,其中查看( SecondItem *( X.Correlation / 100))的订单数量。我试图用cbind来做那个
renderTable({cbind(data(),(data()$X.Correlation/100)*dbGetQuery(con,"SELECT
Count(WHWorkOrderHeaderId) FROM Warehouse.WHWorkOrderDetails INNER
JOIN Warehouse.WHWorkOrderHeader AS WHH ON
Warehouse.WHWorkOrderDetails.WHWorkOrderHeaderId = WHH.ID INNER JOIN
Warehouse.StockItems ON Warehouse.WHWorkOrderDetails.StockItemId =
Warehouse.StockItems.Id WHERE Type = 'IO' AND OtherLangDescription =
data()$SecondItem ORDER BY OtherLangDescription ASC"))})
但我不能根据R
调用sql查询答案 0 :(得分:-1)
我通过定义具有SQL查询值的新数据框然后将其与现有DF合并来解决这个问题:
OrdersNum <- dbGetQuery(con, "
SELECT
OtherLangDescription ,
Count(WHWorkOrderHeaderId) AS Orders_Of_SecondItem
FROM Warehouse.WHWorkOrderDetails
INNER JOIN Warehouse.WHWorkOrderHeader AS WHH
ON Warehouse.WHWorkOrderDetails.WHWorkOrderHeaderId = WHH.ID
INNER JOIN Warehouse.StockItems
ON Warehouse.WHWorkOrderDetails.StockItemId = Warehouse.StockItems.Id
WHERE Type = 'IO'
GROUP By OtherLangDescription
ORDER BY OtherLangDescription ASC")
DF1 <- merge(DF, OrdersNum, by.x = "SecondItem", by.y = "OtherLangDescription")
DF<-DF1[,c(2,1,3,4)]