Предупреждающее сообщение при использовании функции read.zoo

99
17

У меня есть фрейм данных (df), который содержит ежедневные цены на акции, охватывающие более 4000 дней. Это выглядит как:

Date       Prices
1986-1-1 20
. .
. .
. .
. .
2001-08-31 40

Я пытаюсь преобразовать фрейм данных в объект zoo, используя read.zoo(df) (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

спросил(а) 2021-01-19T14:30:09+03:00 2 месяца, 3 недели назад
1
Решение
76

Проблема заключается в том, что вы вызвали read.zoo() без предоставления значения format=, но ваши даты формируются как "%d/%m/%Y", а не "%Y-%m-%d"

ответил(а) 2021-01-19T14:30:09+03:00 2 месяца, 3 недели назад
62

Я не совсем уверен, почему эта ошибка произошла, но я сначала преобразовал 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)

enter image description here

Чтобы ответить на приведенные выше комментарии, сообщение об ошибке, похоже, указывает на то, что существуют дублированные даты, но это не так:

> dim(Data)
[1] 4088 7
> length(unique(Data$Date))
[1] 4088

ответил(а) 2021-01-19T14:30:09+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема