Próbuję konwertować kod SQL na kod R. Jednak dane to około 35 milionów rekordów z 200 kolumnami. Najlepszym wyborem, jaki mogłem znaleźć, był pakiet data.table.Konwersja kodu SQL przy użyciu "case when ..." przy użyciu pakietu data.table w R
Oto problem. W kodzie SQL jestem w stanie wykonać operację, takich jak ten,
select order_date,sum(case when item in ("D","C","B") then col4 end)as col1
sum(case when item not in ("Z","X","Y") then col4 end) as col2
from datatable
where col3 <25
group by order_date;
Co powyższe zapytanie pozwala mi grupy przez każdy dzień. Nie mogę go skopiować w data.table. Moje próby są następujące.
grp1<- c("D","C","B")
grp2<- c("Z","X","Y")
d1 <- dat[item %in% grp1,.(col1 = sum(col4,na.rm = TRUE),by = Order_Date]
d2 <- dat[item %in% grp2,.(col2 = sum(col4,na.rm = TRUE),by = Order_Date]
d3 <- data.table(d1,d2)
Teraz, ponieważ subsets
początkowo moja grupa jest inna zarówno d1
i d2
Wiem, że to nie jest twoje pytanie, ale czy wiesz, że istnieją pakiety R, które są w stanie uruchomić kod SQL (dplyr i inne)? – maj
Nie rozumiem, kiedy mówisz, nie moje pytanie? Chcę to wszystko zaimplementować przy użyciu pakietu data.table. – Shoaibkhanz
Jestem ciekawy w kwestii czasu SQL i R rozwiązań na twoich danych (35Mx200), czy mógłbyś to sprawdzić i opublikować? – jangorecki