晚上好。我的代码需要创建新的变量名。我目前正在使用assign函数。创建新的所需数据结构后,此后将很难修改它。我已经读过很多遍了,将变量名存储在列表中是理想的过程,但是我很难到达那里。
此代码只是尝试将年份列添加到NewVar xts对象。
更大的范围将是循环数年,最终将由i取代2018。
谢谢!
xts1 <- xts(x=1:10, order.by=Sys.Date()-1:10)
xts2 <- xts(x=21:30, order.by=Sys.Date()-1:10)
NewName = "NewVar"
assign(NewName, xts1 - xts2)
assign(NewName$year, 2018) # this is the code that fails logically...
编辑:
期望的结果是使NewVar XTS对象(一个由10个值组成的时间序列)具有一个附加列,为每个值显示2018。
是的,我只能说NewVar $ year <-2018。但是我需要在全局环境(NewVar)中访问分配的变量名,而无需明确输入。有没有一种方法可以使用NewName访问XTS对象NewVar,然后对其进行修改?我的方法找到矢量,而不是新创建的XTS。谢谢!
答案 0 :(得分:2)
为什么不直接使用NewName [“ year”] = 2018?
修改: 好吧,不太确定我明白了。看看这是否适合您。
xts1 <- xts(x=1:10, order.by=Sys.Date()-1:10)
xts2 <- xts(x=21:30, order.by=Sys.Date()-1:10)
NewName = "NewVar"
assign(NewName, xts(cbind(N=xts1 - xts2, year=2018)))