Actualizar subconjunto de valores en una columna de marco de datos

Aquí hay un extracto de mi marco de datos:

  x         y     se
  4         a     7.146329
 15         a     8.458633
 17         a     9.286849
 11         b     6.700024
  8         b     4.697962  
 12         c     7.884244
 10         c     7.834816
 17         c     7.762385
 12         d     5.910785
 15         d     12.98158

Necesito actualizar la primera columna, para que cada número se reste por 1, perosolamente para las condiciones ay b. Es decir, en lugar dec(4, 15, 17, 11, 8, 12, 10, 17, 12, 15), Obtendríac(3, 14, 16, 10, 7, 12, 10, 17, 12, 15).