df <- data.frame(var1=c('a', 'b', 'c'), var2=c('d', 'e', 'f'), freq=1:3)
Quelle est la façon la plus simple d'étendre les deux premières colonnes du data.frame ci-dessus, de sorte que chaque ligne apparaît le nombre de fois spécifié dans la colonne 'freq'?Répliquer chaque rangée de data.frame et spécifier le nombre de réplications pour chaque ligne
En d'autres termes, passer de ceci:
df
var1 var2 freq
1 a d 1
2 b e 2
3 c f 3
à ceci:
df.expanded
var1 var2
1 a d
2 b e
3 b e
4 c f
5 c f
6 c f
Great! J'oublie toujours que vous pouvez utiliser des crochets de cette façon. Je continue à penser à l'indexation juste pour les sous-ensembles ou les réordonnances. J'avais une autre solution beaucoup moins élégante et sans doute moins efficace. Je pourrais poster de toute façon afin que les autres puissent comparer. – wkmor1
Pour un grand 'data.frame', il est plus efficace de remplacer' row.names (df) 'par' seq.int (1, nrow (df)) 'ou' seq_len (nrow (df)) '. – Marek
Cela a fonctionné de manière fantastique pour un grand cadre de données - 1,5 million de lignes, 5 cols, est allé très vite. Merci! – gabe