У меня есть dataframe следующим образом. Теперь я пытаюсь оценить значения значений NA и -999 в столбце A.Как фильтровать значения NA и оценивать их, применяя среднее значение для прошлых записей в R?
Я хочу сделать это, взяв среднее из существующих предыдущих 10-летних значений (5 и 5 ниже) того конкретного месяца, который имеет значения NA или -999. И у меня эти данные для многих, многих идентификаторов.
ID L1 L2 Year Month R A
1234 89 65 2003 Jan 11 76
1234 89 65 2003 Feb 34 86
1234 89 65 2003 Mar 6 30
1234 89 65 2003 Apr 7 76
1234 89 65 2003 May 8 43
1234 89 65 2003 Jun 90 67
1234 89 65 2003 Jul 65 13
1234 89 65 2003 Aug 54 98
1234 89 65 2003 Sep 3 67
1234 89 65 2003 Oct 22 0
1234 89 65 2003 Nov 55 127
1234 89 65 2003 Dec 66 74
1234 45 76 2004 Jan 67 3
1234 45 76 2004 Feb 87 2
1234 45 76 2004 Mar 98 65
1234 45 76 2004 Apr 5 78
1234 45 76 2004 May 4 44
1234 45 76 2004 Jun 3 53
1234 45 76 2004 Jul 77 NA
1234 45 76 2004 Aug 8 98
1234 45 76 2004 Sep 99 79
1234 45 76 2004 Oct 76 -999
1234 45 76 2004 Nov 56 23
1234 45 76 2004 Dec 4 65
Пример: Для оценки «A» столбца NA (или -999 иногда) значение в июле 2005 года, я хочу взять среднее значений оставшиеся 10 годы июля месяца (пять значений выше 2005 и пять ниже) для каждого уникального значения идентификатора.
ID L1 L2 Year Month R A
1234 45 76 1998 Jul 45 35
1234 45 76 2001 Jul 33 25
1234 45 76 2002 Jul 45 34
1234 45 76 2003 Jul 43 56
1234 45 76 2004 Jul 56 54
1234 45 76 2005 Jul 77 NA
1234 45 76 2006 Jul 88 33
1234 45 76 2008 Jul 76 28
1234 45 76 2009 Jul 65 40
1234 45 76 2011 Jul 43 45
1234 45 76 2013 Jul 12 32
Таким образом, мне нужно фильтровать ID и название месяца и вывести записи в течение 10 лет в течение месяца, что оказывает Nas или -999 значения, а затем применить среднее на этих 10 значений для замены этого NA или - 999. Данные огромны.
Как добиться этого в R?
Ухаживать за воспроизводимым примером? Это довольно просто, и простой цикл можно построить, чтобы найти и заменить каждый NA. –