将 xts 对象的每个元素除以来自更大 xts 对象的相应值
Divide each element of xts object by corresponding value from bigger xts object
我如何让 R 接受一个 xts 对象并将它的每个值除以另一个更大的 xts 对象的相应(按日期)值?
假设我有一个 xts 对象,在一个 xts 对象中以货币 A 表示销售额:
2018-01-01 200.0
2018-01-04 400.0
我在其他 xts 对象中有货币汇率:
2018-01-01 5.0
2018-01-02 5.5
2018-01-03 5.7
2018-01-04 6.0
2018-01-05 5.9
我想用当天的货币汇率除以每个销售值,并得到一个结果 xts 对象,如:
2018-01-01 40.0
2018-01-04 66.7
您可以合并对象(以便日期对齐)然后划分列。
library(xts)
sales <- xts(c(200, 400), as.Date(c('2018-01-01','2018-01-04')))
exchange <- xts(c(5, 5.5, 5.7, 6.0, 5.9),
as.Date(c('2018-01-01','2018-01-02','2018-01-03','2018-01-04','2018-01-05')))
merged <- merge(sales, exchange, all=c(TRUE,FALSE))
converted <- merged$sales / merged$exchange
converted
# sales
#2018-01-01 200
#2018-01-04 400
我如何让 R 接受一个 xts 对象并将它的每个值除以另一个更大的 xts 对象的相应(按日期)值?
假设我有一个 xts 对象,在一个 xts 对象中以货币 A 表示销售额:
2018-01-01 200.0
2018-01-04 400.0
我在其他 xts 对象中有货币汇率:
2018-01-01 5.0
2018-01-02 5.5
2018-01-03 5.7
2018-01-04 6.0
2018-01-05 5.9
我想用当天的货币汇率除以每个销售值,并得到一个结果 xts 对象,如:
2018-01-01 40.0
2018-01-04 66.7
您可以合并对象(以便日期对齐)然后划分列。
library(xts)
sales <- xts(c(200, 400), as.Date(c('2018-01-01','2018-01-04')))
exchange <- xts(c(5, 5.5, 5.7, 6.0, 5.9),
as.Date(c('2018-01-01','2018-01-02','2018-01-03','2018-01-04','2018-01-05')))
merged <- merge(sales, exchange, all=c(TRUE,FALSE))
converted <- merged$sales / merged$exchange
converted
# sales
#2018-01-01 200
#2018-01-04 400