Подсчет ссылок - это механизм определения количества объектов R, указывающих на один и тот же базовый SEXPREC (структура C объектов R). Например, в
a <- 1:5
b <- a
a
и b
указывают на один и тот же SEXPREC, и, если один из них изменен, необходимо скопировать SEXPREC, чтобы не изменить значение другого объекта. Однако, если счетчик ссылок на объект не увеличивается, это не означает, что он не имеет отношения к вычислениям. Например в
a <- 1:5
b <- a+1
a
является релевантным, но у a
и b
будет низкий счетчик ссылок, потому что они указывают на другой SEXPREC. Следовательно, подсчет ссылок R не может использоваться, чтобы проверить, созданы ли объекты , но никогда не использовались .
Ради интереса можно использовать лексическую область видимости для подсчета количества обращений к объекту R:
obj <- function(x){
n <- 0
get <- function() {n <<- n+1; x}
count <- function() n
list(get=get, count=count)
}
Затем создайте новый объект R с помощью
a <- obj(1:10)
и доступ к нему с помощью
a$get()
[1] 1 2 3 4 5 6 7 8 9 10
Можно подсчитать, сколько раз к объекту обращались.
a$count()
[1] 1
max(a$get())
[1] 10
a$count()
[1] 2
Если объект имеет число 0
, он был создан, но никогда не использовался .
b <- obj(2)
b$count()
[1] 0