I have a list of dataframes:
str(subsets.d)
List of 22
$ 1 :'data.frame': 358 obs. of 118 variables:
..$ Ac_2017_1 : num [1:358] 0 0 0 0 0 0 0 0 0 0 ...
..$ Ac_9808_1 : num [1:358] 0 0 0 0 0 ...
..$ dates : Ord.factor w/ 6 levels "April"<"May"<..: 1 1 1 1 1 1 1
$ 19 :'data.frame': 358 obs. of 2 variables:
..$ Ac_8598_19: num [1:358] 0.000257 0.000288 0.000171 0 0.000562 ...
..$ dates : Ord.factor w/ 6 levels "April"<"May"<..: 1 1 1 1 1 1 1
I proceed by transforming this into long formats:
library(reshape2)
subsets.m <- lapply(subsets.d, function(x) melt(x))
and then i want to produce boxplots by dates:
library(ggplot2)
lapply(subsets.m, function(x)
ggplot(x, aes(dates, value)) + geom_boxplot() + facet_wrap(~variable, scale="free_y"))
Is it possible to put a ggsave()
or pdf()
inside or otside the lapply? if so, how can i name the saved plots according to the dataframe?
Bonus question, since the dataframes inside the list have different dimensions, the plots can differ in size. Can i adjust for that?
Here is some small example data:
list1 <- list(
data.frame(
Ac_7595_JG37 = c(
0.000128383, 0.000576914, 0.000341631, 0.000729133, 0.000187486, 0.00086127,
0.000594978, 0.000631912, 0.000502274, 0.0004846, 0, 0.000148386, 0.000298153,
0.000828969, 0.000436815, 7.28336e-05, 0.000304842, 0.000301909, 0.000233694,
0.000208491
),
Ac_7474_JG37 = c(
0, 0, 0.000512446, 0, 0.000562457, 0, 0.000198326, 0.000473934, 0,
0.000138457, 0.000132554, 0, 0.000198769, 0.000207242, 0.000145605,
0.000364168, 0, 0.000301909, 0.000116847, 0
),
dates = ordered(
rep(c("April", "May"), each = 10L),
levels = c("April", "May", "June", "August", "October", "November")
)
),
data.frame(
Ac_8732_20 = c(
0.000513534, 0.000384609, 0.000341631, 0.000729133, 0.000937429, 0.000322976,
0.000297489, 0.000394945, 0.000669698, 0.000346143, 0.000265108, 0.000296773,
0.000596306, 0.000310863, 0, 0.000509835, 0, 0.000301909, 0.000233694, 0
),
dates = ordered(
rep(c("April", "May"), each = 10L),
levels = c("April", "May", "June", "August", "October", "November")
)
)
)