Согласно документации (?prcomp
), баллы ПК - это данные, центрированные и масштабированные, если требуется, умноженные на матрицу вращения. Итак, давайте сделаем этот расчет для строки 1 и ПК 1, чтобы проверить. В этом примере я использую объект PCA, образно названный pca
.
Сначала мы центрируем первую строку данных, iris[1, 1:4]
, используя pca$center
, а затем масштабируем, используя pca$scale
. Наконец, мы умножаем нагрузку на ПК 1, pca$rotation[, 1]
и суммируем результат.
# Perform PCA
pca <- prcomp(iris[, 1:4], center = TRUE, scale = TRUE)
# Calculate PC1 score for first row of 'iris'
sum(pca$rotation[,1] * (iris[1, 1:4] - pca$center) / pca$scale)
#> [1] -2.257141
Создано в 2019-01-23 с помощью пакета Представитель (v0.2.1.9000) sup>
Как и ожидалось, мы получаем -2.257141 .
Я сделал бы это как это - в основном хранят все открытые окна, на которые ссылаются, на самой функции. Когда функция стреляет, проверьте, не существует ли окно или было близко - так, запустите всплывающее окно. Иначе, внимание на существующее всплывающее окно для того запроса.
function launchApplication(l_url, l_windowName)
{
if ( typeof launchApplication.winRefs == 'undefined' )
{
launchApplication.winRefs = {};
}
if ( typeof launchApplication.winRefs[l_windowName] == 'undefined' || launchApplication.winRefs[l_windowName].closed )
{
var l_width = screen.availWidth;
var l_height = screen.availHeight;
var l_params = 'status=1' +
',resizable=1' +
',scrollbars=1' +
',width=' + l_width +
',height=' + l_height +
',left=0' +
',top=0';
launchApplication.winRefs[l_windowName] = window.open(l_url, l_windowName, l_params);
launchApplication.winRefs[l_windowName].moveTo(0,0);
launchApplication.winRefs[l_windowName].resizeTo(l_width, l_height);
} else {
launchApplication.winRefs[l_windowName].focus()
}
}
Можно использовать что-то вроде этого на странице, которая открывает новое окно:
var newWindow = null;
function launchApplication()
{
// open the new window only if newWindow is null (not opened yet)
// or if it was closed
if ((newWindow == null) || (newWindow.closed))
newWindow = window.open(...);
}
Необходимо выполнить 2 теста... 1 проверка, если всплывающее окно определяется, и 2 проверки, если это было закрыто.
if(typeof(winRef) == 'undefined' || winRef.closed){
//create new
winRef = window.open(....);
} else {
//it exists, load new content (if necs.)
winRef.location.href = 'your new url';
//give it focus (in case it got burried)
winRef.focus();
}
Вы могли проверить как это:
if(!winref || winref.closed)
{
}