#' Imputa valores faltantes en profundidad inferior
#'
#' La función revisa si el perfil tiene valor faltante en la variable
#' \code{profundidad_inferior} e imputa un valor dado por \code{profundidad_superior}
#' más una constante definida por el argumento \code{profundidad}.
#'
#' @param perfiles un data.frame con perfiles (salida de [get_perfiles()])
#' @param profundidad la profundidad asumida de la ultima capa
#'
#' @returns
#' Un data.frame con las mismas filas y columnas que el objeto de entrada.
#'
#' @examples
#' perfil <- subset(perfiles, perfil_id == 3238)
#' imputar_profundidad_inferior(perfil)
#' imputar_profundidad_inferior(perfil, profundidad = 10)
#'
#' @export
imputar_profundidad_inferior <- function(perfiles, profundidad = 5) {
profundidad_inferior <- profundidad_superior <- perfil_id <- NULL
perfiles <- data.table::as.data.table(perfiles)
perfiles[, c("profundidad_inferior", "profundidad_superior") := agregar_cm_fin(profundidad_inferior, profundidad_superior, profundidad),
by = perfil_id]
as.data.frame(perfiles)
}
agregar_cm_fin <- function(inferior, superior, cm) {
n <- length(inferior)
if (n > 1) {
if (is.na(superior[n])) {
superior[n] <- inferior[n-1]
}
}
if (is.na(inferior[n])) {
inferior[n] <- superior[n] + cm
}
list(inferior, superior)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.