Sto provando a scrivere una semplice funzione di stampa, utilizzando la libreria ggplot2. Ma la chiamata a ggplot non trova l'argomento della funzione.Uso di ggplot() all'interno di un'altra funzione in R
Si consideri un data.frame
chiamato means
che memorizza due condizioni e due valori medi che voglio stampare (la condizione apparirà sull'asse X, significa su Y).
library(ggplot2)
m <- c(13.8, 14.8)
cond <- c(1, 2)
means <- data.frame(means=m, condition=cond)
means
# The output should be:
# means condition
# 1 13.8 1
# 2 14.8 2
testplot <- function(meansdf)
{
p <- ggplot(meansdf, aes(fill=meansdf$condition, y=meansdf$means, x = meansdf$condition))
p + geom_bar(position="dodge", stat="identity")
}
testplot(means)
# This will output the following error:
# Error in eval(expr, envir, enclos) : object 'meansdf' not found
Così sembra che ggplot sta chiamando eval
, che non riesce a trovare l'argomento meansdf
. Qualcuno sa come posso passare correttamente l'argomento della funzione a ggplot?
(Nota: Sì ho potuto solo chiamare direttamente la funzione ggplot, ma alla fine spero di fare la mia funzione plot fare cose più complicate :)!)
Cosa succede se voglio chiamare solo geom_bar/geom_line/geom_point con variabili locali all'interno di una funzione - l'ambiente è un parametro sconosciuto. – Valentas
Non riesco a ottenere queste proposte con 'p <- ggplot ... p + ggplot ...' funziona. Qualche modifica in 'ggplot' nella cosa? –
Tuttavia, questo divertente simile * non * lavorare sulla mia macchina (ggplot2 2.2.1.9000): 'gg_fun <- la funzione (i dati, col) { p <- ggplot (dati, aes (x = COL), ambiente = ambiente()) p + geom_histogram()} ' ' gg_fun (mtcars, HP) ' –