如何将含日期与银行收益的Excel数据转换为zoo对象?
把银行收益数据转换为zoo对象的解决方案
嘿,我来帮你把你的tbl_df格式银行收益数据转成符合要求的zoo对象~ 你的数据结构很清晰:日期是POSIXct类型,收益是数值,直接按下面的步骤来就行:
第一步:加载必要的包
首先确保你装了zoo和dplyr(因为你用到了管道操作%>%),没装的话先安装,然后加载:
# 如果没装包先安装 install.packages(c("zoo", "dplyr")) # 加载包 library(zoo) library(dplyr)
第二步:转换为zoo对象
你的date列已经是POSIXct类型,转成Date类型非常简单,不需要额外指定format参数。这里给你两种写法,选你顺手的就行:
写法一:直接用zoo()函数
# 先清理缺失值 db_clean <- na.omit(db.kurs) # 创建zoo对象:收益列作为数据,转换后的Date作为索引 db_zoo <- zoo(db_clean$`Deutsche Bank`, order.by = as.Date(db_clean$date))
写法二:用dplyr管道链式操作
db_zoo <- db.kurs %>% na.omit() %>% # 移除缺失值 mutate(date = as.Date(date)) %>% # 把POSIXct转成Date类型 select(`Deutsche Bank`, date) %>% # 保留需要的列 read.zoo(index.column = "date") # 读取为zoo对象,指定索引列
验证结果
你可以用str(db_zoo)查看zoo对象的结构,应该会看到类似这样的输出:
> str(db_zoo) ‘zoo’ series from 1925-01-02 to XXXX-XX-XX Data: num [1:1455] 0.181 0.191 0.191 0.184 0.186 ... Index: Date[1:1455], format: "1925-01-02" "1925-01-03" "1925-01-05" ...
这就说明你的zoo对象已经包含了数值类型的收益数据,以及Date类型的日期索引啦~
内容的提问来源于stack exchange,提问作者N.Messers
相关产品推荐
相关产品推荐

