Как R передает переменную из одного объекта в функцию, не возвращая ее? - PullRequest
0 голосов
/ 27 августа 2018

Я довольно новичок в R-программировании и изо всех сил пытался понять, как определенные объекты, кажется, передают переменные в функции, но, похоже, не возвращают эти переменные открыто. Посмотрите на этот пример:

install.packages("cluster")
library(cluster)
x <- rbind(cbind(rnorm(10, 0, 0.5), rnorm(10, 0, 0.5)),
       cbind(rnorm(15, 5, 0.5), rnorm(15, 5, 0.5)),
       cbind(rnorm( 3,3.2,0.5), rnorm( 3,3.2,0.5)))
fannyx <- cluster::fanny(x, 2)
p <- cluster::clusplot(fannyx)

При осмотре участка предоставляется следующая информация:

These two components explain 100 % of the point variability

Я просто не понимаю, откуда эта информация передается! Объясненная изменчивость не возвращается fannyx -объектом.

Я сталкивался с этой проблемой раньше, когда другие функции предоставили больше информации по summary(), чем при использовании print().

Как это можно объяснить?

1 Ответ

0 голосов
/ 28 августа 2018

Если мы расширим функцию clusplot

cluster:::clusplot.default

Мы можем увидеть строку кода:

sub = paste("These two components explain", 
        round(100 * var.dec, digits = 2), "% of the point variability.")

Таким образом, в этом случае этот конкретный показатель рассчитывается внутри функции, а затем добавляется к графику.

Edit:

И мы можем видеть, что cluster:::mkCheckX возвращает var.dec, который вызывается в clusplot

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...