Complementando a resposta anterior:
data <- data.frame(x=c("1958Q3", "2001Q1", "1989M7", "1948M12", "1949", "2011"),
y=runif(6,0,1))
data
(ano <- data[grep("[0-9]{4}$", data$x),])
(quad <- data[grep("[0-9].*Q", data$x),])
(mes <- data[grep("[0-9].*M", data$x),])