微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将两个xts对象彼此相乘

如何解决将两个xts对象彼此相乘

我有一个xts列表,看起来像这样(我的列表称为价格):

VALUE_B

我想将价格乘以特定日的流通股。我试图这样做:

head(prices[[1]])

           X        ID      Name            Price              Shares.Outstanding
1980-03-31 "170481" "55160" "Donec Non Ltd" "5,72762874283858" "973,74375"       
1980-04-30 "170482" "55160" "Donec Non Ltd" "7,60702431506945" "973,74375"       
1980-05-30 "170483" "55160" "Donec Non Ltd" "6,97838217177628" "973,74375"       
1980-06-30 "170484" "55160" "Donec Non Ltd" "8,24558297069908" "973,74375"       
1980-07-31 "170485" "55160" "Donec Non Ltd" "7,92929698195742" "973,74375" 

但是,它给了我错误:二进制运算符的非数字参数。 我也尝试使用as.numeric而不是coredata,但这也不起作用。

谢谢!

解决方法

您正试图乘以字符,这就是R抛出错误的原因。

首先,您应该将这些变量更改为数字,并且必须将逗号替换为点:

library(dplyr)

prices[[1]] <- prices[[1]] %>% mutate(Price = as.numeric(sub(",",".",Price,fixed = TRUE)),Shares.Outstanding = as.numeric(sub(",Shares.Outstanding,fixed = TRUE)))
    

然后您可以将它们相乘!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。