Sto provando a copiare un oggetto ggplot e poi a modificare alcune proprietà del nuovo oggetto copiato come, ad esempio, la linea di colore in rosso.R ggplot2 comportamento strano. Sembra che stia passando per riferimento
Assumere questo codice:
df = data.frame(cbind(x=1:10, y=1:10))
a = ggplot(df, aes(x=x, y=y)) + geom_line()
b = a
Poi, se cambio il colore della linea di variabile a
a$layers[[1]]$geom_params$colour = "red"
cambia anche il colore della b
> b$layers[[1]]$geom_params$colour
[1] "red" # why it is not "black"?
Auguro Potrei avere due oggetti diversi a
e b
con caratteristiche diverse. Quindi, per fare ciò nel modo corretto, avrei bisogno di chiamare di nuovo la trama per b
usando b = ggplot(df, aes(xy, y=z)) + geom_line()
. Tuttavia, in questo momento nell'algoritmo, non c'è modo di conoscere il comando di trama ggplot(df, aes(x=x, y=y)) + geom_line()
Sai cosa c'è di sbagliato in questo? Gli oggetti ggplot sono trattati in modo diverso?
Grazie!
Bene, sono d'accordo che è un po 'spettrale, ma se guardi a 'str (a)' noterai che i livelli sono oggetti proto, quindi molto probabilmente spiega _why_ stai vedendo questo comportamento. – joran