Порядок операций по суммированию

Что происходит в первой строке кода и почему результат отличается от двух следующих результатов?

library(tidyverse)
library(magrittr)

data.frame(A=c(2,2),B=c(1,1)) %>%
   summarise(A = sum(A),B = sum(B), D=sum(A)-sum(B))

дает D = 0

data.frame(A=c(2,2),B=c(1,1)) %>%
   summarise(A = sum(A),B = sum(B), D=sum(A-B) )

дает в D = 2

data.frame(A=c(2,2),B=c(1,1)) %>% 
  summarise(sum_A = sum(A),sum_B = sum(B), D=sum(A)-sum(B))

дает в D = 2.

Кажется, я не могу объяснить, как D = 0 может быть результатом такой операции. Как D=0 может быть разумным результатом?