hz_intersect: Intersecting horizon boundaries by horizon depths

hz_intersectR Documentation

Intersecting horizon boundaries by horizon depths

Description

This function intersects two horizon tables by harmonizing their depths and merging them where they overlap. This can be useful to rejoin the results of hz_dissolve() to it's original horizon table, and then perform an aggregation on the dissolved variables.

Usage

hz_intersect(x, y, idcol = "id", depthcols = c("top", "bottom"))

Arguments

x

a data.frame

y

a data.frame

idcol

character: column name of the pedon ID within the object.

depthcols

a character vector of length 2 specifying the names of the horizon depths (e.g. c("top", "bottom")).

Details

.

Value

A data.frame with harmonized depth intervals (i.e. segment_id) and columns from both of the original data.frame. If both data.frame contain the same column names, they will both be returned (with the exception of the idcol and depthcols), and appended with either x or y to indicate which data.frame they originated from.

Author(s)

Stephen Roecker

See Also

hz_dissolve(), hz_lag(), hz_segment()

Examples


h <- data.frame(
  id = 1,
  top    = c(0,  25, 44, 46, 50),
  bottom = c(25, 44, 46, 50, 100),
  by     = c("Yes", "Yes", "No", "No", "Yes"),
  clay   = c(10, 12, 27, 35, 16)
)

hz_dissolve(h, "by")

hz_intersect(x = hz_dissolve(h, "by"), y = h)

hi <- hz_intersect(x = h, y = hz_dissolve(h, "by"))
aggregate(clay ~ dissolve_id, data = hi, mean)


aqp documentation built on Oct. 19, 2024, 5:06 p.m.