Мы можем использовать split
в list
именованных векторов и использовать list2env
для создания нескольких объектов в глобальной среде (не рекомендуется)
list2env(split(as.character(df$cities), df$name), envir = .GlobalEnv)
Если нам нужно отделить ' city '
library(dplyr)
library(tidyr)
df %>%
separate_rows(cities) %>%
{split(as.character(.$cities), .$name)} %>%
list2env(.GlobalEnv)
и теперь проверьте ls()
для объектов' name ', созданных в глобальном env
Или другой вариант - извлечь элементы в list
, затем преобразуйте его в именованный список с помощью deframe
и используйте list2env
library(purrr)
library(tibble)
library(stringr)
df %>%
mutate(cities = str_extract_all(cities, "\\w+")) %>%
deframe %>%
list2env(.GlobalEnv)
Или для отдельной строки
assign(as.character(df$name)[1],
scan(text = as.character(df$cities)[1], what = "", sep=","))
Теперь проверьте ls()
и объект 'michel' будет найден
michel
#[1] "Paris" "Montreal"