Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to convert dataframe column names from strings into arguments suitable for (qplot, ggplot2)?

I want to write a function that takes a dataframe, and graphs all the columns in that dataframe as histograms.

For a dataframe whose column names I know beforehand, I can write

qplot(colname1, data=df, geom='histogram')
qplot(colname2, data=df, geom='histogram')
...

but I want to do this generically, so that I can use the name of the column as a string "colname1".

In other words, how to write

plot_histogram_of_column <- function(df, colname) {
    # qplot(colname, data=df, geom='histogram') won't work
}
like image 521
prabhasp Avatar asked Dec 20 '11 04:12

prabhasp


1 Answers

Use ggplot and aes_string. Something like this:

ggplot(data = df, aes_string(x = colname)) + geom_histogram()

aes_string was written precisely for this purpose.

like image 183
joran Avatar answered Oct 01 '22 18:10

joran