簡體   English   中英

將 SQL 代碼轉換為 R(使用 dplyr)

[英]Convert SQL code to R (using dplyr)

我正在嘗試使用 dplyr 將 SQL 代碼轉換為 R。 我幾乎做到了,但我對代碼的最后一部分有疑問。

我只需要顯示罰款總和 (valamenda) 大於“卡拉拉西”中的總和 (valamenda) 的縣 (denloc)。

這是我在 SQL 中的查詢:

    select denloc, sum (valamenda) as total 
      from contraventions c inner join counties co on c.idloc = co.idloc
      where datacontr between date '1/1/2014' and date '31/12/2014' 
      group by denloc
      having sum(valamenda) >
              (select sum (valamenda) as total 
              from contraventions c inner join counties co on c.idloc = co.idloc
              where denloc = 'Calarasi' and datacontr between date '1/1/2014' and date '31/12/2014'
              group by denloc)

這就是我到目前為止在 R 中所做的

   result <- inner_join(Contraventions, Counties) %>%
             select(denloc, datacontr, valamenda) %>%
             filter(year(datacontr)== '2014') %>%
             group_by(denloc) %>%
             summarize(Total_Amenda = sum(valamenda))

結果是:

              denloc    Total_Amenda

          1   Bucuresti     1000
          2   Calarasi       850
          3   Cluj Napoca    150
          4   Giurgiu        1500
          5   Iasi           250

正如我已經說過的,我必須只顯示罰款總和 (Total_Amenda) 大於“卡拉拉西”中的總和 (Total_Amenda) 的那些縣 (denloc)。

因此我的結果應該是這樣的:

         denloc    Total_Amenda

     1   Giurgiu        1500
     2   Bucuresti      1000

我應該創建一個變量還是應該制作兩個表然后比較它們?

嘗試手動將 SQL 代碼轉換為 R 代碼后,您可以在 dplyr 代碼后使用 show_query() 函數交叉檢查 dplyr 包 R 代碼是否產生相同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM