Nothing
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
# Copyright (C) 2020 Reza Mohammadi & Kevin Burke |
# |
# This file is part of 'liver' package. |
# |
# liver is free software: you can redistribute it and/or modify it under |
# the terms of the GNU General Public License as published by the Free |
# Software Foundation; see <https://cran.r-project.org/web/licenses/GPL-3>.|
# |
# Maintainer: Reza Mohammadi <a.mohammadi@uva.nl> |
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
# Min-Max normalization
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
minmax = function( x, columns = NULL, na.rm = FALSE )
{
# if( !methods::is( x )[ 1 ] %in% c( "integer", "numeric" ) ) stop( "Categorical variable not support" )
if( !is.vector( x ) & !is.matrix( x ) & !is.data.frame( x ) ) stop( " x must be a vector, matrix, or dataframe" )
if( any( is.na( x ) ) & ( na.rm == FALSE ) ) na.rm = TRUE
if( is.vector( x ) ){
x_mm = ( x - min( x, na.rm = na.rm ) ) / ( max( x, na.rm = na.rm ) - min( x, na.rm = na.rm ) )
}
if( is.null( columns ) )
{
data_frame = FALSE
if( is.data.frame( x ) ){
data_frame = TRUE
x = data.matrix( x )
}
if( is.matrix( x ) ){
if( nrow( x ) == 1 ) stop( " x, for the case of matrix, must have more than 1 row." )
x_mm = t( ( t( x ) - apply( x, 2, min, na.rm = na.rm ) ) / ( apply( x, 2, max, na.rm = na.rm ) - apply( x, 2, min, na.rm = na.rm ) ) )
x_mm[ is.na( x_mm ) ] = x[ is.na( x_mm ) ]
x_mm[ x_mm > 1 ] = 1
x_mm[ x_mm < 0 ] = 0
}
if( data_frame == TRUE ) x_mm = as.data.frame( x_mm )
}else{
x_mm = x
if( is.numeric( columns ) ){
for( i in columns ){
x_i = as.integer( x[ , i ] )
min_i = min( x_i, na.rm = na.rm )
max_i = max( x_i, na.rm = na.rm )
x_mm[ , i ] = ( x_i - min_i ) / ( max_i - min_i )
}
}
if( is.character( columns ) ){
for( i in columns ){
x_i = as.integer( x[ i ] )
min_i = min( x_i, na.rm = na.rm )
max_i = max( x_i, na.rm = na.rm )
x_mm[ i ] = ( x_i - min_i ) / ( max_i - min_i )
}
}
}
return( x_mm )
}
## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.