Member 13262840 Ответов: 0

Заменить на среднее значение для конкретного дня и сетки


Я использую большой набор данных, и я не привык использовать такой большой (286,212 строк, 19 столбцов), и я не уверен, как решить мою проблему. данные состоят из значений для каждого дня года для 782 ссылок на сетку, и у меня есть это в течение 15 лет. Выглядит это следующим образом
**Month  Day  Grid   x2004    x2005    x2006     x2007**
 1       1    A10    0.091   0.134     NA       0.066
 1       2    A10    0.12    0.10      0.23     0.054
 1       3    A10    0.55    NA        NA       0.08
 1       1    B10    NA      0.134     NA       0.17
 1       2    B10    0.14    0.151     NA       0.21
 1       3    B10    0.43    0.162     0.24      NA

Однако некоторые дни отсутствуют, и я хочу вставить среднее значение этого дня для этой конкретной сетки, используя значения из других лет. Так что если сетка А10 на 1-й день 2006 года отсутствует. Я хочу вставить среднее значение для сетки А10 дня 1 с 2004, 2005, 2007 годов, в данном случае 0,097.

Что я уже пробовал:

Я пробую следующий код
x<-for(i in 1:ncol(data)){
  data[is.na(data[,i]) ,i] <- mean(data[,i], na.rm = TRUE)
}

но, кажется, он находит колонку, означающую, что я думаю, и добавляет ее. Я также попытался изменить его на
x<-for(i in 1:nrow(data)){
data[is.na(data[i,]) ,i] <- mean(data[i,], na.rm = TRUE)
}

и это тоже не сработало. Я уже спрашивал о stackoverflow, но пока не получил решения. Я не программист, и это последний бит кодирования, который мне нужен для анализа статистики для моей докторской степени, поэтому я очень отчаянно пытаюсь понять это, но я просто не знаю, как это сделать. Я знаю, что этот форум предназначен для других языков программирования, но, пожалуйста, помогите, если можете.

0 Ответов