首页 > 解决方案 > 修改分配变量的正确程序

问题描述

晚上好。我有需要创建新变量名的代码。我目前正在使用分配功能。在我创建新的所需数据结构后,我很难修改它。我读过很多次,将变量名存储在列表中是理想的过程,但我无法到达那里。

此代码只是尝试将年份列添加到 NewVar xts 对象。

更大的范围将是循环多年,2018 年最终将被 i 取代。

谢谢!

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。谢谢!

标签: rxts

解决方案


为什么不直接使用 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)))

推荐阅读