Я пишу функцию для построения n серий данных. Моя идея состояла в том, чтобы l oop через каждую серию и добавить новый gg_smooth для каждого l oop. Это работает, когда я "l oop" вручную, но вставляя его в фактический l oop, перезаписываю цвет aesteti c.
Данные, с которыми я работаю, идея в том, чтобы иметь возможность иметь n количество столбцов:
данные
Используя следующие строки, я получаю желаемый результат:
gene_list <- c("tetA", "tet.W.")
gg <- ggplot()
gg <- gg + geom_smooth(data=df_analysis_summed,
aes(x=as.Date(dato), y=!!sym(gene_list[1]), linetype = oua_2, colour = gene_list[1] ),
method="auto", se=F)
gg <- gg + geom_smooth(data=df_analysis_summed,
aes(x=as.Date(dato), y=!!sym(gene_list[2]), linetype = oua_2, colour = gene_list[2] ),
method="auto", se=F)
gg + labs(colour = "gene")
Затем я пытаюсь добавить функциональность в oop:
plot_genes_scat_smooth <- function (df,gene_list) {
plot <- ggplot()
for (gene_index in 1:length(gene_list)) {
print(gene_index)
print(gene_list[gene_index])
plot <- plot +
geom_smooth(data=df, aes(x=as.Date(dato), y=!!sym(gene_list[gene_index]), linetype=oua_2, colour = gene_list[gene_index]), method="auto", se=F)#+
#geom_point(data=df,aes(x=as.Date(dato), y=!!sym(gene), colour = gene, shape = oua_2))
}
plot
}
genes = c("tetA", "tet.W.")
plot_genes_scat_smooth(df_analysis_summed,gene_list = genes)
Используя функцию, я получаю следующий результат:
Это будет Кажется, что цвет aes первой строки перезаписывается вторым вызовом при попытке реализовать его как функцию. Как это может быть?