Я пытаюсь создать цикл кода, в котором я делаю среднегодовые значения по времени для каждого сайта (в данном случае озера).У меня есть следующие (подмножество моих) данных:
SITE YEAR ANC DOC NO3 SBC_ALL SBC.Na SO4
1434021 1996 -25.318 2.439 18.701 91.327 79.580 99.695
020059O 2012 70.010 8.070 2.750 147.270 186.350 45.540
1434021 1997 -22.534 2.387 21.617 96.635 84.946 102.071
1434025 1994 25.352 1.595 15.334 172.988 159.256 117.223
020059O 2003 48.140 7.860 4.410 156.010 188.340 78.000
020059O 1993 28.230 7.430 3.420 139.540 181.590 84.550
1364959 1993 6.050 0.756 19.111 148.300 131.157 118.411
1434021 2008 -4.386 2.420 13.861 80.651 70.136 82.469
143400680 1996 -20.842 4.961 16.075 99.999 88.871 88.057
1364959 1997 2.650 1.845 25.613 143.504 126.480 104.679
Я запускаю следующий код и получаю графики для каждой строки данных.Я хочу получить графики только для каждого конкретного сайта (например, SITE = 020059O).Каждый сайт имеет среднегодовое значение за каждый год с 1990 по 2017 год.
for (site_id in mydata$SITE)
{
p <-
filter(mydata, SITE == site_id) %>%
ggplot(aes(x = YEAR, y = ANC)) +
geom_line() +
geom_point() +
theme_bw() +
ggtitle(site_id)
print(p)
}
Этот код дает:
Пример ежегодного ANC на сайте 020059O
Я рассмотрел использование функции different () или unique (), но, похоже, они удаляют дубликаты.Мне нужны дубликаты в данных, потому что они содержат год и среднее значение за этот год.Какие еще варианты у меня есть, чтобы я мог запустить ggplot только на уникальном САЙТЕ, но сохранил данные за год, которые мне нужны?
Оригинальная идея для кода цикла пришла от: http://www.r -gators.com / 2017/ 10/25 / петель-в-г /