Функция DMwR::unscale(vals, norm.data, col.ids)
требует, чтобы norm.data
имела число столбцов, большее, чем число vals
. Я предлагаю рассмотреть следующую измененную версию unscale
:
myunscale <- function (vals, norm.data, col.ids) {
cols <- if (missing(col.ids)) 1:NCOL(vals) else col.ids
if (length(cols) > NCOL(vals))
stop("Incorrect dimension of data to unscale.")
centers <- attr(norm.data, "scaled:center")[cols]
scales <- attr(norm.data, "scaled:scale")[cols]
unvals <- scale(vals[,col.ids], center = (-centers/scales), scale = 1/scales)
unvals <- cbind(unvals,vals[,-col.ids])
attr(unvals, "scaled:center") <- attr(unvals, "scaled:scale") <- NULL
unvals
}
set.seed(1)
x <- matrix(2*rnorm(4000) + 1, ncol = 4)
x2 <- matrix(9*rnorm(2000), ncol = 2)
x_unsc <- myunscale(cbind(scale(x), x2), scale(x) , 1:4)
. Средние значения и стандартные отклонения x_unsc
:
apply(x_unsc, 2, mean)
# [1] 0.9767037 0.9674762 1.0306181 1.0334445 -0.1805717 -0.1053083
apply(x_unsc, 2, sd)
# [1] 2.069832 2.079963 2.062214 2.077307 8.904343 8.810420
С некоторыми изменениями вы можете использовать любой пользовательский класс в качестве вспомогательного компонента. Вы должны использовать операторы namespace
и use
для имеющегося у вас класса, см. Ниже
<?php
namespace app\components;
class Response
{
/**
* @var array
*/
private static $response = array
(
'9999' => array('description' => "Unexpected Response", 'definite' => true, 'status' => "Indeterminate"),
'00' => array('description' => "Success", 'definite' => true, 'status' => "Success"),
'NNC_AUTH_01' => array('description' => /*"Status unknown, please wait for settlement report"*/"System Error", 'definite' => true, 'status' => "Failure"),
'NNC_VTU_01' => array('description' => "Ttimed out", 'definite' => false, 'status' => "Indeterminate"),
'NNC_VTU_02' => array('description' => "Exceeded max number of requests for Phone number per time period", 'definite' => true, 'status' => "Failure"),
'NNC_VTU_03' => array('description' => "Invalid target MSISDN supplied", 'definite' => true, 'status' => "Failure"),
'-1' => array('description' => "Not successful", 'definite' => false, 'status' => "Failure")
);
/**
* @param $respCode
*/
public static function getResponseByCode($respCode)
{
if (isset(self::$response[$respCode])) {
return self::$response[$respCode];
}
return self::$response['9999'];
}
}
Сохраните класс Above в файле с именем Response.php
в папке app\components
, если используете [ 115] или common\components
, если вы используете advanced-app
, но не забудьте изменить namespace
в коде.
Затем можно вызвать функцию getResponseByCode()
как app\components\Response::getResponseByCode($responseCode)
или common\components\Response::getResponseByCode($responseCode)