Leyenda perdida con ggplot2 y geom_line

¿Cómo se puede obtener una leyenda para trazar líneas en ggplot? Lo he intentado toda la noche pero no he tenido éxito.

p <- ggplot(output, aes(lambda), legend=TRUE) + geom_line(aes(y=train.err), colour="red", label="r") + geom_line(aes(y=test.err), colour="blue", label="b") + geom_line(aes(y=data.err), colour="green", label="g") print(p) 

Donde el resultado es un dataframe con la siguiente estructura:

 'data.frame': 2101 obs. of 4 variables: $ lambda : num 3.06e-07 3.09e-07 3.12e-07 3.15e-07 3.18e-07 ... $ train.err: num 0.415 0.415 0.415 0.415 0.415 ... $ test.err : num 0.373 0.373 0.373 0.373 0.373 ... $ data.err : num 0.398 0.398 0.398 0.398 0.398 ... 

pon el color dentro de los aes así:

 d<-data.frame(x=1:5, y1=1:5, y2=2:6) ggplot(d, aes(x)) + geom_line(aes(y=y1, colour="1")) + geom_line(aes(y=y2, colour="2")) + scale_colour_manual(values=c("red", "blue")) 

pero lo recomiendo de esta manera:

 d2 <- melt(d, id="x") ggplot(d2, aes(x, value, colour=variable)) + geom_line() + scale_colour_manual(values=c("red", "blue"))