File: range-functions.R

package info (click to toggle)
r-cran-maldiquant 1.18-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 2,860 kB
  • sloc: ansic: 315; sh: 10; makefile: 4
file content (46 lines) | stat: -rw-r--r-- 847 bytes parent folder | download | duplicates (5)
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
## .overlap
## returns largest overlapping mass range of a list of AbstractMassObject
## objects.
##
## params:
## l: list of AbstractMassObject objects
##
## returns:
## double, minimal and maximal mass
##
.overlap <- function(l) {
  ## test argument
  .stopIfNotIsMassObjectList(l)

  ## mass values are already sorted
  leftMass <- .unlist(lapply(l, function(x)x@mass[1L]))
  rightMass <- .unlist(lapply(l, function(x)x@mass[length(x@mass)]))

  if (length(rightMass)) {
    r <- c(max(leftMass, na.rm=TRUE), min(rightMass, na.rm=TRUE))
    if (r[1L] < r[2L]) {
      return(r)
    }
  }

  ## no overlap
  c(0L, 0L)
}

## .reorderRange
## swap range values if needed
##
## params:
## x: range values
##
## returns:
## corrected range values
##
.reorderRange <- function(x) {
  ## sort range
  if (x[1L] > x[2L]) {
    x <- x[2L:1L]
  }

  x
}