https://github.com/cran/FSelector
Revision 04f271f14fba8652b1ba48e065b58dbbc8b36bbd authored by Piotr Romanski on 11 April 2009, 00:00:00 UTC, committed by Gabor Csardi on 11 April 2009, 00:00:00 UTC
0 parent
Raw File
Tip revision: 04f271f14fba8652b1ba48e065b58dbbc8b36bbd authored by Piotr Romanski on 11 April 2009, 00:00:00 UTC
version 0.15
Tip revision: 04f271f
entropy.R
# H(C)
entropy <- function(vec) {
	probs = table(vec)
	data_length = sum(probs)
	probs = probs / data_length
	return(sum(sapply(probs, function(t) {
			p = as.numeric(t)
			return(- p * log2(p))
		})))
}

# H(A,B)
joint.entropy <- function(a, b) {
	data_length = length(a)
	probs = as.vector(table(a, b))
	probs = probs / sum(probs)
	return(sum(sapply(probs, function(t) {
			p = as.numeric(t)
			return(
				if(p == 0) {
					0
				} else {
					- p * log2(p)
				}
			)
		})))

}
back to top