Определите имя столбца как параметр со значением ячейки в R - PullRequest
0 голосов
/ 06 августа 2020

В моем коде я определил такие параметры, как:

Amazon <- "TRUE"
FlipCart <- "FALSE"

Поэтому всякий раз, когда мне нужно изменить флаг параметра или ввести новый параметр, мне нужно внести эти изменения в код. Итак, вместо жесткого кодирования параметров в коде я создал таблицу с двумя столбцами, такими как «Параметр» и «Флаг», в которой я могу изменить значение флага, а также вставить новую запись параметра в таблицу.

Например: ## Я создал фрейм данных, чтобы показать пример:

data <- data.frame(parameter = c("Amazon","Flipcart","JioMart","Dmart"),
                   flag = c("TRUE","FALSE","TRUE","TRUE")
)

## Выполните транспонирование, чтобы преобразовать параметр как имя столбца и флаг как значение ячейки:

datat <- tidyr::spread(data, parameter, flag)

Я могу автоматически определять значение параметра, используя вышеуказанный фрейм данных, например:

Amazon <- data$Amazon
FlipCart <- data$FlipCart

Вышеупомянутый подход работает, когда я изменяю значение флага любого параметра в таблице. Но когда я вставляю новый параметр в таблицу, мне нужно внести изменения в код. Например:

NewParameter <- data$NewParameter

Есть ли какая-нибудь функция / Logi c, которая может автоматически назначать значение параметра, даже если я добавил новый параметр в таблицу.

1 Ответ

0 голосов
/ 06 августа 2020

Мы могли бы использовать list2env (не рекомендуется)

tidyr::spread(data, parameter, flag) %>%
    unclass %>%
    list2env(.GlobalEnv)

Теперь, если мы наберем

Amazon
#[1] "TRUE"
...