Кадры данных показывают бессмысленные данные, используя sqldf в R - PullRequest
0 голосов
/ 14 января 2020

У меня есть эта проблема, если мои данные не будут генерировать или показывать бессмысленные данные. У меня есть другие куски (например, номер 3, который я добавил здесь), где эта проблема не возникает. Другое дело, что они работают обычными SQL кусками в записной книжке с SQLite, но я хочу, чтобы они были в R-скрипте. Я спросил некоторых друзей, но они также не знают ответа на мой вопрос.

Вот мой код:

library(tidyverse)
library(lubridate)
library(DBI)
library(dplyr)
library(sqldf)

con <- sim::loadSimulation("1b2e8e81-e20c-be56-234e-0ed99e0e3913")


chunk1 <- sqldf("
SELECT strftime('%Y',o.orderdate) AS 'Jaar', strftime('%m',o.orderdate) AS 'Maand', strftime('%Y-%m',o.orderdate) AS 'Datum', SUM(ol.quantity) AS 'Aantal_producten'
FROM orders o, orderlines ol
WHERE o.orderNr = ol.orderNr
GROUP BY o.orderdate
ORDER BY o.orderdate
") %>% mutate(Datum = make_date(Jaar, Maand))
print(chunk1)

chunk2 <- sqldf("
SELECT DISTINCT c.custNr AS 'Klantnummer', c.name AS 'Naam', strftime('%Y',c.Birthdate) AS 'Geboortejaar', AVG(pp.price) AS 'Gemiddelde_prijs'
FROM customers c, orders o, orderlines ol, productprices pp
WHERE c.custNr = o.custNr
AND o.orderNr = ol.orderNr
AND ol.productNr = pp.productNr
AND birthDate BETWEEN 1970 AND 1990
GROUP BY c.custNr, c.name, Geboortejaar
HAVING AVG(pp.price) > 320
ORDER BY c.birthDate
") %>% mutate(Geboortejaar = make_date(Geboortejaar))
print(chunk2)

chunk3 <- sqldf("
SELECT sr.regionCode AS 'Regiocode', sr.description AS 'Regio', (SUM(pp.price*ol.quantity) - SUM(pp.cost*ol.quantity)) AS 'Winst'
FROM salesregions sr, customers c, orders o, orderlines ol, productprices pp
WHERE c.zipCode BETWEEN sr.zipCodeBegin AND sr.zipCodeEnd
AND c.custNr = o.custNr
AND o.orderNr = ol.orderNr
AND ol.productNr = pp.productNr
GROUP BY sr.regionCode, sr.description
ORDER BY Winst
")
print(chunk3)
...