Я пытаюсь написать условное утверждение со следующими ограничениями. Ниже приведен пример фрейма данных, показывающий проблему, с которой я сталкиваюсь.
Row <- c(1,2,3,4,5,6,7)
La <- c(51.25,51.25,51.75,53.25,53.25,54.25,54.25)
Lo <- c(128.25,127.75,127.25,119.75,119.25,118.75,118.25)
Y <- c(5,10,2,4,5,7,9)
Cl <- c("EF","EF","EF","EF","NA","NA","CE")
d <- data.frame(Row,La,Lo,Y,Cl)
Row La Lo Y Cl
1 1 51.25 128.25 5 EF
2 2 51.25 127.75 10 EF
3 3 51.75 127.25 2 EF
4 4 53.25 119.75 4 EF
5 5 53.25 119.25 5 NA
6 6 54.25 118.75 7 NA
7 7 55.25 118.25 9 CE
Я хотел бы суммировать столбец «Y» (удаляя все значения из этой строки), если «Cl» равен NA с соответствующим « Значения Lo " и " La "близки (равны или меньше 1,00). По сути, я хочу удалить NA из фрейма данных, не теряя значение «Y», но вместо этого добавив это значение к ближайшему соседу.
Я бы хотел, чтобы возвращаемый фрейм данных выглядел так :
Row2 <- c(1,2,3,4,7)
La2 <- c(51.25,51.25,51.75,53.25,55.25)
Lo2 <- c(128.25,127.75,127.25,119.75,118.25)
Y2 <- c(5,10,2,9,16)
Cl2 <- c("EF","EF","EF","EF","CE")
d2 <- data.frame(Row2,La2,Lo2,Y2,Cl2)
Row2 La2 Lo2 Y2 Cl2
1 1 51.25 128.25 5 EF
2 2 51.25 127.75 10 EF
3 3 51.75 127.25 2 EF
4 4 53.25 119.75 9 EF
5 7 55.25 118.25 16 CE
недавнее редактирование: Если строка NA близка к одной строке с точки зрения значения Lo и такой же близости к другой строке в значении La, объедините значение La. Если есть 2 одинаково близких ряда значений Lo и La, объедините их с меньшим значением La.
Спасибо за помощь!