我的数据框(df)包含超过4000天的每日股票指数价格。它看起来像:
Date Prices
1986-1-1 20
. .
. .
. .
. .
2001-08-31 40
我正在尝试使用read.zoo(df)
将数据框转换为zoo对象(read.zoo是zoo包中的一个函数)。但是它给了我以下错误:
Warning message:
In zoo(rval3, ix) :
some methods for “zoo” objects do not work if the index entries in ‘order.by’ are not unique
影响我应用于对象的后续代码。
出于再现性目的,原始数据(FTSE100jensen.csv)和代码(JensenPaper.R)可在https://github.com/ahmedfsalhin/1stpaper
上找到答案 0 :(得分:2)
问题是您在没有为read.zoo()
提供值的情况下致电format=
,但您的日期格式为"%d/%m/%Y"
,而不是"%Y-%m-%d"
答案 1 :(得分:1)
我不太确定为什么会出现此错误,但我首先将Date
转换为Date
类,并且能够使用此函数调用read.zoo
而不会出现错误:
options(stringsAsFactors=FALSE)
library(zoo)
##
Data <- read.csv(
"F:/gitData.csv",
header=TRUE)
#
Data$Date <- as.Date(
Data$Date,
"%d/%m/%Y")
##
zData <- read.zoo(Data)
##
> head(zData)
Open High Low Close Volume Adj.Close
1986-01-01 1412.6 1412.6 1412.6 1412.6 0 1412.6
1986-01-02 1412.6 1420.8 1412.0 1420.5 0 1420.5
1986-01-03 1420.5 1430.0 1419.6 1429.8 0 1429.8
1986-01-06 1429.8 1436.3 1424.1 1424.1 0 1424.1
1986-01-07 1419.8 1419.8 1411.6 1415.2 0 1415.2
1986-01-08 1415.2 1419.3 1400.3 1404.2 0 1404.2
并且一切似乎都是有序的,例如我可以正确地调用.zoo
方法等等......
> plot(zData)
为了解决上面的评论,错误消息似乎表明存在重复的日期,但事实并非如此:
> dim(Data)
[1] 4088 7
> length(unique(Data$Date))
[1] 4088