У меня есть следующий фрейм данных:
weird_data <-
data.frame("ID" = 1:8,
"API" = c("01-01",
"01-02",
"02-01",
"02-02",
"02-03",
"03-01",
"03-02",
"03-03"),
"Final" = c("no",
"yes",
"no",
"no",
"yes",
"no",
"no",
"yes"),
"Month" = c("May",
NA,
NA,
"June",
"July",
"April",
"June",
NA),
stringsAsFactors = FALSE
)
В столбце API
первое число перед дефисом - это код скважины, а второе число после дефиса - это код активности, причем большееномера, соответствующие последующим действиям.Я только хочу сохранить строку, соответствующую последнему коду активности для каждой лунки.Однако для некоторых скважин данные Month
записываются только для более ранних кодов активности.Таким образом, для каждой лунки, если последний код активности имеет NA
для Month
, я хочу заменить NA
на Month
из самого последнего кода активности, который имеет один записанный.В идеале мой результат должен выглядеть следующим образом:
desired_output <-
data.frame("ID" = 1:8,
"API" = c("01-01",
"01-02",
"02-01",
"02-02",
"02-03",
"03-01",
"03-02",
"03-03"),
"Final" = c("no",
"yes",
"no",
"no",
"yes",
"no",
"no",
"yes"),
"Month" = c("May",
"May",
NA,
"June",
"July",
"April",
"June",
"June"),
stringsAsFactors = FALSE
)
Лунки расположены в таком порядке, а столбец Final
достоверно указывает на лунки, которые я в конечном итоге хочу сохранить как yes
, если это поможет.Реальные данные имеют около 8000 строк, хотя, возможно, для 2800 скважин.