【发布时间】:2018-10-18 18:04:12
【问题描述】:
我有两个向量:
years<-c(1995:1999)
values<-c(1:5)
我想创建五个对象,分别命名为“Obj1995”、“Obj1996”等,并按顺序为它们分配values中的值,以便Obj1995==1、Obj1996==2等。
我尝试使用assign():
assign(paste0("Obj",years),values)
但这不是向量化的,所以它只创建了一个对象,包含所有values:
In assign(paste0("Obj",years),values) :
only the first element is used as variable name
有没有办法在没有 for 循环的情况下实现我的目标?
【问题讨论】:
-
仅供参考,通常的建议是:不要那样做。两者都不会创建一堆自然地组合在一个对象中的对象。并且不要在字符串中嵌入数据(在这种情况下是年份)。也就是说,
yr_DF = data.frame(yr = years, v = values)或类似... -
谢谢,我知道这个建议,并已将其考虑在内。实际用例并不像示例那么简单,虽然我可以将所有内容都放入一个列表中,但将多维数组作为列表对象变得过于繁琐,无法满足我的需求。
-
library("fortunes"); fortune(236)