library("broadcast")
<- list(
x a = list(list(list(list(1:10)))),
b = list(1:10)
)print(x)
## $a
## $a[[1]]
## $a[[1]][[1]]
## $a[[1]][[1]][[1]]
## $a[[1]][[1]][[1]][[1]]
## [1] 1 2 3 4 5 6 7 8 9 10
##
##
##
##
##
## $b
## $b[[1]]
## [1] 1 2 3 4 5 6 7 8 9 10
dropnests(x)
## $a
## [1] 1 2 3 4 5 6 7 8 9 10
##
## $b
## [1] 1 2 3 4 5 6 7 8 9 10
# recurse_classed demonstration ====
<- list(
x a = list(list(list(list(1:10)))),
b = data.frame(month.abb, month.name),
c = data.frame(month.abb)
)
dropnests(x) # by default, recurse_classed = FALSE
## $a
## [1] 1 2 3 4 5 6 7 8 9 10
##
## $b
## month.abb month.name
## 1 Jan January
## 2 Feb February
## 3 Mar March
## 4 Apr April
## 5 May May
## 6 Jun June
## 7 Jul July
## 8 Aug August
## 9 Sep September
## 10 Oct October
## 11 Nov November
## 12 Dec December
##
## $c
## month.abb
## 1 Jan
## 2 Feb
## 3 Mar
## 4 Apr
## 5 May
## 6 Jun
## 7 Jul
## 8 Aug
## 9 Sep
## 10 Oct
## 11 Nov
## 12 Dec
dropnests(x, recurse_classed = TRUE)
## $a
## [1] 1 2 3 4 5 6 7 8 9 10
##
## $b
## month.abb month.name
## 1 Jan January
## 2 Feb February
## 3 Mar March
## 4 Apr April
## 5 May May
## 6 Jun June
## 7 Jul July
## 8 Aug August
## 9 Sep September
## 10 Oct October
## 11 Nov November
## 12 Dec December
##
## $c
## [1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
# maxdepth demonstration ====
<- list(
x a = list(list(list(list(1:10)))),
b = list(1:10)
)print(x)
## $a
## $a[[1]]
## $a[[1]][[1]]
## $a[[1]][[1]][[1]]
## $a[[1]][[1]][[1]][[1]]
## [1] 1 2 3 4 5 6 7 8 9 10
##
##
##
##
##
## $b
## $b[[1]]
## [1] 1 2 3 4 5 6 7 8 9 10
dropnests(x) # by default, maxdepth = 32
## $a
## [1] 1 2 3 4 5 6 7 8 9 10
##
## $b
## [1] 1 2 3 4 5 6 7 8 9 10
dropnests(x, maxdepth = 3L)
## $a
## $a[[1]]
## $a[[1]][[1]]
## [1] 1 2 3 4 5 6 7 8 9 10
##
##
##
## $b
## [1] 1 2 3 4 5 6 7 8 9 10
dropnests(x, maxdepth = 1L) # returns `x` unchanged
## $a
## $a[[1]]
## $a[[1]][[1]]
## $a[[1]][[1]][[1]]
## $a[[1]][[1]][[1]][[1]]
## [1] 1 2 3 4 5 6 7 8 9 10
##
##
##
##
##
## $b
## $b[[1]]
## [1] 1 2 3 4 5 6 7 8 9 10
dropnests
Drop Redundant List Nesting
Description
dropnests()
drops redundant nesting of a list.
It is the hierarchical equivalent to the dimensional base::drop()
function.
Usage
dropnests(x, ...)
## Default S3 method:
dropnests(x, maxdepth = 32L, recurse_classed = FALSE, ...)
Arguments
x
|
a list |
…
|
further arguments passed to or from methods. |
maxdepth
|
a single, positive integer, giving the maximum depth to recurse into the list. The surface-level elements of a list is depth 1. dropnests(x, maxdepth = 1) will return x unchanged.
|
recurse_classed
|
TRUE or FALSE , indicating if the function should also recurse through classed lists within x , like data.frames.
|
Value
A list without redundant nesting.
Attributes are preserved.