Еще один совет: ggplot работает лучше всего, когда данные «аккуратны» (см., Например, «1001 * R» для «Науки о данных» Хэдли Уикхема).Тогда решение может выглядеть следующим образом (gather
-колл изменяет / убирает данные так, чтобы они лучше подходили для ggplot):
library(tidyverse)
library(ggplot2)
library(data.table)
color1 = "#D30F4B"
color2 = "#66B512"
data= data.frame(Week = rep(1:5,2), kpi = rep(c("Var1", "Var2"), each=5), value = runif(10), value2 = c(runif(5), rep(NA,5)) )
data <- gather(data, key = value_name, value = value, -Week, -kpi) ## tidy the data with "gahter"
ggplot(data, aes(x = Week, y = value, colour = value_name, group = value_name)) +
geom_line() +
facet_wrap(kpi ~ ., ncol = 1) +
scale_colour_manual(name="Legend", values=c(color1, color2))