J'ai été confronté à un problème avec geom_hline ou geom_vline si je l'appelle sous la fonction personnalisée et prend la valeur d'un vecteur. Il semble fonctionner très bien jusqu'à ce que j'ajouter facet_grid() dans cette fonction body.eg Sans fonctiongeom_hline ou geom_vline ne semble pas accepter de vecteur pour la ligne de référence, si elle est appelée dans une fonction et facet_grid() est utilisé
c<- data.frame(A = c("carr","bike","truck","carr","truck","bike","bike","carr","truck","carr","truck","truck","carr","truck","truck"),
B = c(10,20,30,23,45,56,78,44,10,20,30,10,20,30,67),
D = c(1,2,3,1,2,3,2,3,2,3,2,2,3,2,1))
a = c(1:4)*4
ggplot(c, aes(A,B, color = D))+
geom_point()+
facet_grid(.~D)+
geom_hline(yintercept = a,linetype = "dotted",size =0.3)
`
Mais avec fonction
tk_fun <- function(dat,x1,y1,clr){ # I need to have this a declared and defined with in function.
a = c(1:4)*4.5 p <- ggplot(dat, aes_string(colnames(dat)[1],colnames(dat)[2], color = colnames(dat)[3]))+
geom_point()+ facet_grid(.~dat[,3])+
geom_hline(yintercept = a,linetype = "dotted",size =0.3) return(p) } tk_fun(c,"A","B","D")
Avec la fonction I a m obtenir cette erreur:
Error in
$<-.data.frame
(*tmp*
, "PANEL", value = c(1L, 2L, 3L, 1L, : replacement has 15 rows, data has 4 I hope someone can help me in figuring out, how to do it through function, without an error. Thanks
ne pas affecter un objet portant le nom 'c'. 'c' est une fonction de base essentielle que vous utilisez dans votre propre code. – Matt74