Split a SoilProfileCollection object into a list of SoilProfileCollection objects.
This function splits a SoilProfileCollection into a list of SoilProfileCollection objects using a site-level attribute to define groups or profile ID (idname(x)).
## S4 method for signature 'SoilProfileCollection' split(x, f, drop = TRUE, ...)
x |
a SoilProfileCollection object |
f |
a character vector naming a single site-level attribute that defines groups, a ‘factor’ in the sense that |
drop |
logical indicating if levels that do not occur should be dropped (if f is a factor or a list). |
... |
Additional arguments are ignored |
As of aqp 1.25, omission of f
argument is no longer possible, as the base R generic is overloaded by this SoilProfileCollection method. This used to result in an "identity" split, according to idname(x)
, e.g. a list as long as length(x)
, with a single-profile SoilProfileCollection per list element. Replicate this behavior using f = idname(x)
or f = profile_id(x)
A list of SoilProfileCollections or NULL
for empty result.
D.E Beaudette
data(sp2) depths(sp2) <- id ~ top + bottom # add a more interesting site-level attribute site(sp2) <- ~ surface # using identity site-level attribute (profile ID) p1 <- split(sp2, f = idname(sp2)) names(p1) length(p1) # using vector equal in length to number of profiles (profile ID, again) p2 <- split(sp2, f = profile_id(sp2)) names(p2) length(p2) # which are both equivalent to setting `f` to NULL p3 <- split(sp2, f = NULL) names(p3) length(p3) # split on surface (age) site-level var p4 <- split(sp2, f = "surface") names(p4) length(p4) # 5 unique "surfaces", 5 SPCs in result list
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.