Je suis un peu nouveau à R et je suis tombé sur un point où j'ai besoin d'aide. Je pense que le paquet de remodelage peut accomplir ce que j'ai besoin de faire.Erreur de formatage - facteur non valide
Voici la structure du cadre de données d'origine:
> str(bruins)
'data.frame': 10 obs. of 6 variables:
$ gameid : Factor w/ 1 level "20090049": 1 1 1 1 1 1 1 1 1 1
$ team : chr "NYI" "BOS" "NYI" "BOS" ...
$ home_ind: chr "V" "H" "V" "H" ...
$ period : Factor w/ 5 levels "1","2","3","4",..: 1 1 2 2 3 3 4 4 5 5
$ goals : int 0 0 3 0 0 3 0 0 3 3
$ shots : int 16 7 9 7 8 12 5 4 38 30
Voici les premières lignes:
> head(bruins)
gameid team home_ind period goals shots
409 20090049 NYI V 1 0 16
410 20090049 BOS H 1 0 7
411 20090049 NYI V 2 3 9
412 20090049 BOS H 2 0 7
413 20090049 NYI V 3 0 8
414 20090049 BOS H 3 3 12
Je cherche à créer une nouvelle trame de données qui pivote sur gameid et période , avec le reste des colonnes résumant les données pour chaque ligne home_ind (10 colonnes au total).
Quand je lance le code suivant:
b.melt <- melt(bruins, id=c("gameid", "period"), na.rm=TRUE)
Je reçois l'erreur suivante:
Warning messages:
1: In `[<-.factor`(`*tmp*`, ri, value = c(0L, 0L, 3L, 0L, 0L, 3L, 0L, :
invalid factor level, NAs generated
2: In `[<-.factor`(`*tmp*`, ri, value = c(16L, 7L, 9L, 7L, 8L, 12L, :
invalid factor level, NAs generated
Toute aide sera très appréciée!
Edit: Voici ce que je suis l'espoir d'obtenir les données restructurées pour ressembler
gameid period vis_team vis_goals vis_shots home_team home_goals home_shots
1 20090049 1 NYI 0 16 BOS 0 7
2 20090049 2 NYI 3 9 BOS 0 7
3 20090049 3 NYI 0 8 BOS 3 12
Comme toujours, merci pour le conseil hadley. Je n'arrive pas à comprendre ce que je résumerais. J'ai édité le post ci-dessus pour mettre en évidence ce que j'espère que le nouveau cadre de données ressemblera. J'avais déjà essayé d'utiliser sqldf et je l'ai presque compris, mais je pense qu'il doit y avoir un moyen plus simple avec certains de vos paquets. – Btibert3