#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. Да, хранение всех этих констант в списке / фрейме данных упрощает управление ими.