我试图检索许多代码的月度退货,但是,并非所有月度退货时间系列都完全达到今天的日期,因此我的月度退货不会在代码之间匹配。例如,在做完
之后getSymbols("III.L")
monthlyReturn(III.L, from = '2000-01-01', to = '2017-09-26')
特别是,这将为我提供3i月度回报的时间序列,但是,这个系列缺少来自2016-10-21'周围的数据。直到"到"日期。是否有可能让时间序列按原样返回,除非缺少数据仅作为NAs而没有quantmod删除丢失的(最近的)值?
即。我希望返回的回报作为正常的一系列回报,除了一串NAs(或等价的占位符)填充到" to"日期。
非常感谢,我真的很感激帮助!
答案 0 :(得分:0)
这将为您提供删除缺失值的数据:
Map<String, String> map = new HashMap<>();
map.put("id", "5");
map.put("name", "Bob");
map.put("age", "23");
map.put("savings", "2500.39");
ObjectMapper mapper = new ObjectMapper();
MyPojo pojo = mapper.convertValue(map, MyPojo.class);
(使用您的默认na.omit(monthlyReturn(III.L, from = '2000-01-01', to = '2017-09-26’))
设置,您会收到一条警告消息,指出已删除缺失的值,您可以忽略这些消息)
答案 1 :(得分:0)
尝试这个(可选择将NAs返回为注释掉的NAs):
getSymbols("SPY")
III.L <- merge(III.L, xts(, index(SPY)))
III.L[, 4] <- na.locf(III.L[, 4])
r <- monthlyReturn(Cl(III.L), from = '2000-01-01', to = '2017-09-26')
# Optional, replace 0 return months to NA:
#r[r[, 1] == 0, ] <- NA
tail(r, 20)
# monthly.returns
# 2016-04-29 -0.017723488
# 2016-05-31 0.252478748
# 2016-06-30 -0.070347284
# 2016-07-29 0.181992337
# 2016-08-31 -0.004051864
# 2016-09-30 0.058584215
# 2016-10-31 0.016141430
# 2016-11-30 0.000000000
# 2016-12-30 0.000000000
# 2017-01-31 0.000000000
# 2017-02-28 0.000000000
# 2017-03-31 0.000000000
# 2017-04-28 0.000000000
# 2017-05-31 0.000000000
# 2017-06-30 0.000000000
# 2017-07-31 0.000000000
# 2017-08-31 0.466717095
# 2017-09-29 -0.058277463
# 2017-10-31 0.052573932
# 2017-11-08 -0.009885536
使用SPY
获取一组交易日期,您“认为”您应该有价格数据,但不会。