Я использую ggplot2
и geom_line()
, чтобы создать линейный сюжет из большого количества временных рядов.Набор данных имеет большое количество пропущенных значений, и я в целом рад, что линии не прорисовываются на пропущенных сегментах, так как это выглядело бы странно.
Моя проблема в том, что отдельные точки данных не-NA окружены NA (илиточки в начале / конце ряда с NA на другой стороне) не наносятся.Потенциальным решением было бы добавить geom_point()
для всех наблюдений, но это увеличит мой размер файла в десять раз и затруднит чтение графика.
Таким образом, Я хочу идентифицировать только те точки данных, которые не отображаются с geom_line()
, и добавлять баллы только для этих .Есть ли простой способ идентифицировать эти точки?
Мои данные в настоящее время находятся в длинном формате, и следующие MWE могут служить иллюстрацией.Я хочу определить строки 1 и 7, чтобы я мог построить их:
library(ggplot2)
set.seed(1)
dat <- data.frame(time=rep(1:5,2),country=rep(1:2,each=5),value=rnorm(10))
dat[c(2,6,8),3] <- NA
ggplot(dat) + geom_line(aes(time,value,group=country))
> dat
time country value
1 1 1 -0.6264538
2 2 1 NA
3 3 1 -0.8356286
4 4 1 1.5952808
5 5 1 0.3295078
6 1 2 NA
7 2 2 0.4874291
8 3 2 NA
9 4 2 0.5757814
10 5 2 -0.3053884