У меня есть такой кадр данных
library(ggplot2)
df = data.frame(N = c(12, 18))
И я хочу получить
I do
ggplot()+ geom_segment(aes(x = 0, y = 0.5, xend = max(df$N), yend =0.5), color="grey50",
linetype="dashed", size=1.5) +
geom_segment(aes(x = df$N[1], y = 0, xend = df$N[1], yend = 0.5), color="grey50",
linetype="dashed", size=1.5)+
geom_segment(aes(x = df$N[2], y = 0, xend = df$N[2], yend = 0.5), color="grey50",
linetype="dashed", size=1.5)
Проблема в том, что данные могут меняться, строк может быть не две, а три и более, и код становится некорректным. Поэтому я пытаюсь использовать цикл
v = list()
for (i in 1:length(df$N)) {
n = geom_segment(aes(x = df$N[i], y = 0, xend = df$N[i], yend = 0.5), color="grey50",
linetype="dashed", size=1.5)
v = append(n, v)
}
v
ggplot()+ geom_segment(aes(x = 0, y = 0.5, xend = max(df$N), yend =0.5), color="grey50",
linetype="dashed", size=1.5) + v
Но на диаграмме показана только последняя строка. Как исправить шлейф или надо делать по другому?