我在R中创建环境时遇到了问题.我知道你可以创建一个像“Mar2015”= new.env()这样的新环境.这样可行.但是出于某种奇怪的原因,我不能从矢量中做到这一点.我创建了这个向量
test = c(“Mar2015”,“Sep2013”)和test [1] = new.env()不起作用.
我确信这些与我可以使用唯一的唯一命令(c(test [1],“March2015”))相同,并确认它们是相同的.
任何人都可以解释为什么会这样吗?
最佳答案 当你运行test [i] = new.env()时,你试图将一个环境存储在一个字符串向量中;由于环境不是字符串,因此此代码将导致错误.
您可以使用以下命令从test创建命名的环境列表:
envs <- sapply(test, function(x) new.env())
要么
envs <- setNames(replicate(length(test), new.env()), test)
然后你可以使用envs $Mar2015和envs $Sep2013访问你的环境或者相当于envs [[“Mar2015”]]和envs [[“Sep2013”]].特别是如果您正在创建大量环境,则命名列表可能是比您的环境的单个变量更好的结构.
如果您真的想要创建一个具有每个指定名称的变量,您可以使用:
for (x in test) assign(x, new.env())