Aliases: rapply
### ** Examples X <- list(list(a = pi, b = list(c = 1L)), d = "a test") # the "identity operation": rapply(X, function(x) x, how = "replace") -> X.; stopifnot(identical(X, X.)) rapply(X, sqrt, classes = "numeric", how = "replace")
[[1]] [[1]]$a [1] 1.772454 [[1]]$b [[1]]$b$c [1] 1 $d [1] "a test"
rapply(X, deparse, control = "all") # passing extras. argument of deparse()
a b.c d "3.1415926535897931" "1L" "\"a test\""
rapply(X, nchar, classes = "character", deflt = NA_integer_, how = "list")
[[1]] [[1]]$a [1] NA [[1]]$b [[1]]$b$c [1] NA $d [1] 6
rapply(X, nchar, classes = "character", deflt = NA_integer_, how = "unlist")
a b.c d NA NA 6
rapply(X, nchar, classes = "character", how = "unlist")
d 6
rapply(X, log, classes = "numeric", how = "replace", base = 2)
[[1]] [[1]]$a [1] 1.651496 [[1]]$b [[1]]$b$c [1] 1 $d [1] "a test"
## with expression() / list(): E <- expression(list(a = pi, b = expression(c = C1 * C2)), d = "a test") LE <- list(expression(a = pi, b = expression(c = C1 * C2)), d = "a test") rapply(E, nchar, how="replace") # "expression(c = C1 * C2)" are 23 chars
expression(c(4L, 2L, 23L), d = 6L)
rapply(E, nchar, classes = "character", deflt = NA_integer_, how = "unlist")
d NA 6
rapply(LE, as.character) # a "pi" | b1 "expression" | b2 "C1 * C2" ..
a b1 b2 d "pi" "expression" "C1 * C2" "a test"
rapply(LE, nchar) # (see above)
a b1 b2 d 2 10 7 6
stopifnot(exprs = { identical(E , rapply(E , identity, how = "replace")) identical(LE, rapply(LE, identity, how = "replace")) })