Objeto de suma en una columna entre un intervalo definido por otra columna

Tengo un marco de datos como este:

  df
       A B
 [1,]  1 4
 [2,]  2 3
 [3,]  3 5
 [4,]  4 7
 [5,]  5 5
 [6,]  6 7
 [7,]  7 4
 [8,]  8 7
 [9,]  9 3
[10,] 10 7

Necesito sumar los números en la columna B que se encuentran entre un cierto intervalo definido por la columna A. Por ejemplo, sume el valor en B entre A≥1 y A <3.

Estoy tratando de usar esto:

> sum(which(df$B[df$A>=1] & df$B[df$A<3]))

pero no me da lo que quiero.

Respuestas a la pregunta(2)

Su respuesta a la pregunta