/fingerprint/R/bitspec.R
R | 22 lines | 20 code | 2 blank | 0 comment | 10 complexity | 0c94477e5334b69df55f95f0e5b86afc MD5 | raw file
- bit.spectrum <- function(fplist) {
- if (class(fplist) != 'list') stop("Must provide a list of fingerprint objects")
- if (any(unlist(lapply(fplist, class)) != 'fingerprint'))
- stop("Must provide a list of fingerprint objects");
- nbit <- length(fplist[[1]])
- spec <- numeric(nbit)
- for (i in 1:length(fplist)) {
- bits <- fplist[[i]]@bits
- spec[bits] <- spec[bits]+1
- }
- spec / length(fplist)
- }
- shannon <- function(fplist) {
- if (class(fplist) != 'list') stop("Must provide a list of fingerprint objects")
- if (any(unlist(lapply(fplist, class)) != 'fingerprint'))
- stop("Must provide a list of fingerprint objects");
- bs <- bit.spectrum(fplist)
- bs <- bs[ bs != 0 ]
- -1 * sum( bs * log2(bs) )
- }