1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
#' @title Set a list element to a new value
#'
#' @description
#' This wrapper supports setting elements to \code{NULL}.
#'
#' @param obj [\code{list}]\cr
#' @param index [\code{character} | \code{integer}]\cr
#' Index or indices where to insert the new values.
#' @param newval [any]\cr
#' Inserted elements(s).
#' Has to be a list if \code{index} is a vector.
#' @return [\code{list}]
#' @export
setValue = function(obj, index, newval) {
assertList(obj)
assert(checkCharacter(index, any.missing = FALSE), checkIntegerish(index, any.missing = FALSE))
if (length(index) == 1L) {
if (is.null(newval))
obj[index] = list(NULL)
else
obj[index] = newval
} else {
assertList(newval, len = length(index))
obj[index] = newval
}
return(obj)
}
|