У меня есть 21 глобальная переменная окружения, каждая из которых содержит большое количество данных. Я хочу получить доступ к этим переменным по ссылке внутри функций, но я хочу параметризовать их имена, например, если у меня есть SPdata, NEdata, FRdata и т. Д .... 21 переменные, я хотел бы знать, как обращаться к ним внутри функций, передавая только «название страны» (то есть «SP», «NE», «FR» и т. д.) без необходимо создать копию (потому что каждый из них имеет размер более 300 мегабайт). Кажется, что получается копия (неэффективна для мой размер данных). Могу ли я это сделать? Я в настоящее время использую получает везде такМогу ли я получить() глобальную переменную среды R по ссылке?
cData <- get(paste(cCode, "data", sep = ""))
Да, я знаю, что я должен поместить их всех в список в глобальном окр, но это слишком поздно, и я не» t хочу реорганизовать весь код. Просто мои «получает» становятся неэффективными, а множественный доступ в циклах может быть медленным. r пример доступа к каждой переменной, как если бы она была в списке?
Я должен был пойти с countryData = list (SPdata, NEdata, FRdata..etc), обратившись к ним с помощью countryData [[paste (cCode, "data", sep = "")]], но уже слишком поздно.
Я должен был добавить, что я намерен изменить некоторые значения внутри функций и get() копирует при изменении, как видно из разных адресов ниже.
> .Internal(inspect(a))
@101b7bcf8 14 REALSXP g0c1 [NAM(2)] (len=1, tl=0) 1
> g <- function() {x <- get("a"); x; x <- 2; .Internal(inspect(x))}
> g()
@101cea648 14 REALSXP g0c1 [NAM(2)] (len=1, tl=0) 2
>
В примере. Внутренний (проверка (x)) выдается после утверждения нового значения 'x', и именно это вызвало новый адрес, а не' get'. –