самый простой способ пакетной настройки многих констант

#r #dplyr #tidyverse #tidyr

#r #dplyr #tidyverse #tidyr

Вопрос:

Я новичок в R.

У меня есть около 50 ~ 100 универсальных констант для настройки в моем R-скрипте.

Этими константами являются задержка, скорость затухания, преобразование мощности, параметр модели и т. Д.

Позже я повторю эти параметры, чтобы подобрать наилучшую модель для некоторых данных.

что-то вроде:

 data1.transformation1.lag1 <- 1
data1.transformation1.lag2 <- 2
data1.transformation1.lag3 <- 3

data1.transformation2.lag1 <- 1
data1.transformation3.lag2 <- 2
data1.transformation4.lag3 <- 3

...

data1.model1.parameter1 <- .3
data1.model1.parameter2 <- .4
data1.model1.parameter3 <- .7

data1.model2.parameter1 <- 0
data1.model2.parameter2 <- .3
data1.model2.parameter3 <- .9

data2.model1.parameter1 <- .5
data2.model1.parameter2 <- 1
data2.model1.parameter3 <- 1.2

...
  

Какова наилучшая практика и самый простой способ настроить эти константы?

(Чтобы не вводить много раз и легче читать)

Комментарии:

1. Если все константы имеют одинаковое значение, можете ли вы везде использовать одну и ту же константу?

2. Это не то же самое значение, я просто привожу пример. Числа представляют собой произвольное числовое число с плавающей запятой

Ответ №1:

Вместо того, чтобы создавать множество переменных в глобальной среде, я бы посоветовал вам использовать список или фрейм данных для их хранения.

 ref_list <- setNames(as.list(c(1:3, .4, .9, 4:1)), 
                             c(paste0('data1.transformation1.lag', 1:3), 
                               paste0('data1.model1.parameter', 1:2), 
                               paste0('data2.model1.parameter', 1:4)))
  

Вы можете получить доступ к любому значению, которое хотите, используя $ sign .

 ref_list$data2.model1.parameter1
#[1] 4
ref_list$data1.model1.parameter1
#[1] 0.4
  

Если вам все еще нужны эти переменные в глобальной среде по какой-либо другой причине, используйте list2env .

 list2env(ref_list, .GlobalEnv)
  

Комментарии:

1. Вы правы. Возможно, мне следует создать какой-то класс? Но ваш легче визуализировать, если бы я напечатал все числа на листе

2. Да, хранение всех этих констант в списке / фрейме данных упрощает управление ими.