我有两个向量:
years<-c(1995:1999) values<-c(1:5)
values 按顺序,这样 Obj1995==1 , Obj1996==2 等。
values
Obj1995==1
Obj1996==2
assign() :
assign()
assign(paste0("Obj",years),values)
价值观 :
价值观
In assign(paste0("Obj",years),values) : only the first element is used as variable name
有没有办法不用for循环就实现我的目标?
我们可以用 list2env 在 named list
list2env
named
list
list2env(as.list(setNames(values, paste0("Obj", years))), envir = .GlobalEnv) Obj1995 #[1] 1 Obj1996 #[1] 2
这个 assign 可与 for 环
assign
for
rm(list = ls(pattern = "^Obj\\d{4}$")) # remove any objects for(i in seq_along(values)) assign(paste0("Obj", yearsi]), value = values[i])