J'ai deux trames de données - un cours de clôture des actions classés par date (lignes) et symbole (colonnes):Créer un panneau de deux trames de données
> head(data.stocks)
date A AAPL ABAT AB ABV
1 2010-10-04 32.59 278.64 3.65 26.42 125.89
2 2010-10-05 33.04 288.94 3.66 27.10 129.05
3 2010-10-06 32.67 289.19 3.59 26.99 129.90
4 2010-10-07 33.20 289.22 3.66 27.04 129.94
5 2010-10-08 33.80 294.07 3.84 26.76 132.66
6 2010-10-11 33.75 295.36 3.87 26.95 133.37
L'autre trame de données a un intérêt ouvert (Oi) organisé par une ligne par symbole par jour:
> head(data.oi)
date symbol oi close
1 2010-10-04 A 6 0
2 2010-10-04 AA 104 0
3 2010-10-04 AAPL 940 0
4 2010-10-04 AB 0 0
5 2010-10-04 ABAT 0 0
6 2010-10-04 ABB 0 0
Je voudrais ajouter une autre colonne à cette seconde trame de données afin que je finis avec une trame de données « du panneau » avec un symbole par jour par rangée avec oi et prix de clôture.
Je pensais que cette boucle fonctionnerait, mais je reçois l'erreur suivante:
> for (i in seq(length(data.oi$date))) {
+ row <- which(data.stocks$date == data.oi$date[i])
+ col <- which(colnames(data.stocks) == data.oi$symbol[i])
+ data.oi$close[i] <- data.stocks[row, col]
+ }
Error in data.oi$close[i] <- data.stocks[row, col] :
replacement has length zero
FWIW, il stocke la première valeur data.oi
, échoue alors:
> head(data.oi)
date symbol oi close
1 2010-10-04 A 6 32.59
2 2010-10-04 AA 104 0.00
3 2010-10-04 AAPL 940 0.00
4 2010-10-04 AB 0 0.00
5 2010-10-04 ABAT 0 0.00
6 2010-10-04 ABB 0 0.00
Merci! Je me sens comme reshape
ou aggregate
pourrait le faire, mais je ne peux pas comprendre comment fusionner ces deux.
Merci! Et j'avais ajouté le 'close' pour ma boucle folle, donc c'est encore plus facile! Melt est mon nouveau meilleur ami. –