R quitar la última palabra de la cadena

Estoy tratando de hacer algo, pero no puedo recordar / encontrar la respuesta. Tengo una lista de nombres de ciudades de la Oficina del Censo y ponen el tipo de ciudad al final, que está arruinando mimatch().

Me gustaría hacer esto:

Middletown Township
Sunny Valley Borough
Hillside Village

dentro de esto:

Middletown
Sunny Valley
Hillside

¿Alguna sugerencia? Idealmente también me gustaría saber si hay unalastIndexOf() funciona en R.

Aquí está el dput:

> dput(df1)
structure(list(id = c(1, 2, 3), city = structure(c(2L, 3L, 1L
), .Label = c("Hillside Village", "Middletown Township", "Sunny Valley Borough"
), class = "factor")), .Names = c("id", "city"), row.names = c(NA, 
-3L), class = "data.frame")

Respuestas a la pregunta(2)

Su respuesta a la pregunta