Если нам действительно нужно создать новый столбец на основе строкового объекта varname
, то вызовите assign
второй раз и назначьте ([[<-
) новый столбец "AnotherCol" с value
"Test"
assign(varname, `[[<-`(get(varname), "AnotherCol", value = "Test"))
head(get(varname))
# speed dist AnotherCol
#1 4 2 Test
#2 4 10 Test
#3 7 4 Test
#4 7 22 Test
#5 8 16 Test
#6 9 10 Test
ПРИМЕЧАНИЕ. Это не рекомендуемый способ.Это можно сделать без использования assign
или get
.Предполагая, что присвоение происходит из цикла, может быть лучше создать один list
вместо создания нескольких объектов в глобальной среде
Например, можно создать «AnotherCol» со значением «Test»в list
наборах данных с помощью base R
методов
lapply(list(cars, mtcars), transform, AnotherCol = "Test")
или с использованием tidyverse
методов
library(tidyverse)
lst(cars, mtcars) %>%
map(mutate, AnotherCol = "Test")