comment convertir le bloc de données en série chronologique dans la R
J'ai un fichier csv dans lequel j'ai 2 cours de clôture des actions(sur une base quotidienne)
Dates Bajaj_close Hero_close
3/14/2013 1854.8 1669.1
3/15/2013 1850.3 1684.45
3/18/2013 1812.1 1690.5
3/19/2013 1835.9 1645.6
3/20/2013 1840 1651.15
3/21/2013 1755.3 1623.3
3/22/2013 1820.65 1659.6
3/25/2013 1802.5 1617.7
3/26/2013 1801.25 1571.85
3/28/2013 1799.55 1542
Je veux convertir les données ci-dessus dans le temps à la série de format. (date de début est 3/14/2013
et la date de fin est 3/13/2015
) j'ai essayé ceci mais sa me donne un peu bizarre de sortie
values <- bajaj_hero[, -1] (excluded first column i.e date in real dataset)
bajaj_hero_timeseries <- ts(values,start=c(2013,1),end=c(2015,3),frequency=365)
De sortie est:
Bajaj_close Hero_close
2013.000 1854.80 1669.10
2013.003 1850.30 1684.45
2013.005 1812.10 1690.50
2013.008 1835.90 1645.60
2013.011 1840.00 1651.15
2013.014 1755.30 1623.30
2013.016 1820.65 1659.60
2013.019 1802.50 1617.70
2013.022 1801.25 1571.85
s'il vous plaît aider.. 🙂
OriginalL'auteur Neil | 2015-03-14
Vous devez vous connecter pour publier un commentaire.
R a de multiples façons de represeting temps de la série. Puisque vous travaillez avec des prix journaliers des stocks, vous pouvez considérer que les marchés financiers sont fermés le week-end d'affaires et de vacances ainsi que la négociation des jours et des jours ne sont pas les mêmes. Toutefois, vous devrez peut-être travailler avec votre fois de la série en termes de négociation les deux jours et des jours. Par exemple, les rendements journaliers sont calculés à partir séquentielle cours de clôture quotidiens, indépendamment de savoir si une fin de semaine. Mais vous pouvez aussi faire du calendrier de reporting tels que le prix de la semaine des résumés. Pour ces raisons, la xts paquet, une extension du zoo, est couramment utilisée avec les données financières de R. Un exemple de la façon dont il pourrait être utilisé avec vos données de la façon suivante.
En supposant que les données affichées dans votre exemple, dans le dataframe df
qui donne à la sortie
WaltS je n'ai pas l'obtenir.hebdomadaire(stocks$Hero_close, nom="Héros")
Vous aurez besoin d'utiliser l'énoncé de la bibliothèque(xts) pour que cela fonctionne.
OriginalL'auteur WaltS
D'entrée. Nous allons commencer avec le texte de l'entrée de la question, puisque la question n'a pas fourni le csv d'entrée:
zoo.
"ts"
de classe de la série, normalement, ne représentent pas la date index, mais nous pouvons créer une série de zoo qui n' (voir forfait zoo):Alternativement, si vous avez déjà lu cela dans un bloc de données
DF
alors il pourrait être converti au zoo, comme illustré sur la deuxième ligne ci-dessous:Dans les deux cas ci-dessus
z
ia une série de zoo avec un"Date"
classe indice de temps. On pourrait aussi créer la série de zoo,zz
, qui utilise 1, 2, 3, ... comme l'indice de temps:ts. L'un de ces pourrait être converti en
"ts"
de classe de la série:Le premier a un indice de temps qui est le nombre de jours depuis l'Époque (janvier 1, 1970) et NAs pour manquant jours et la seconde pour 1, 2, 3, ... comme l'indice de temps et pas de NAs.
Série mensuelle. Généralement
"ts"
de la série sont utilisés pour mensuel, trimestriel ou annuel de la série. Ainsi, si nous étions à agréger l'entrée dans le mois, nous avons pu raisonnablement représenter comme un"ts"
série:OriginalL'auteur G. Grothendieck
Avec la bibliothèque
fpp
, vous pouvez facilement créer des séries chronologiques avec le format de la date:time_ser=ts(data,frequency=4,start=c(1954,2))
ici, nous commençons à la 2e trimestre de 1954 trimestre fequency.
OriginalL'auteur louisv
Voir cette question: La conversion des données.cadre de la xts order.by nécessite un temps approprié en fonction de l'objet, qui suggère de regarder argument order.by,
Et suggère en outre une conversion explicite à l'aide de order.by = comme.POSIXct,
Où votre format est attribué ailleurs,
OriginalL'auteur ChuckCottrill