File: meandeviation.R

package info (click to toggle)
r-cran-circular 0.5-1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,492 kB
  • sloc: ansic: 464; fortran: 69; sh: 13; makefile: 2
file content (29 lines) | stat: -rw-r--r-- 1,156 bytes parent folder | download | duplicates (3)
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
#############################################################
#                                                           #
#   meandeviation function                                  #
#   Author: Claudio Agostinelli and Alessandro Gagliardi    #
#   Email: claudio@unive.it                                 #
#   Date: August, 29, 2012                                  #
#   Copyright (C) 2012 Claudio Agostinelli                  #
#                                                           #
#   Version 0.1                                             #
#############################################################

meandeviation <- function (x, na.rm=FALSE)  {
  if (is.matrix(x)) {
    apply(x, 2, meandeviation, na.rm=na.rm)
  } else {
    if (na.rm) 
      x <- x[!is.na(x)]
    x <- conversion.circular(x, units="radians", zero=0, rotation="counter")
    attr(x, "class") <- attr(x, "circularp") <-  NULL
    MeanDeviationRad(x=x)
  }
}

MeanDeviationRad <- function(x) {
  circmedian <- MedianCircularRad(x)
##  circmedian <- attr(circmedian, 'medians')[1]
  meandev <- pi - mean(abs(pi-abs(MinusPiPlusPiRad(x-circmedian))))
  return(meandev)
}