J'ai un data.frame « UIQ » dans le format suivant:ACAST de temps à grand format
CNS_CD PROD_CD QTY
1 M00000001 CFGO301WABU 1
2 M00000002 DFGK122EARE 1
3 M00000002 CWGO154COGY 1
4 M00000004 CWGC003COTA 1
5 M00000005 CWGC002COTA 1
6 M00000005 CFDC002COTA 1
7 M00000006 CFDT202AISL 1
8 M00000007 CFDO309FIPE 1
9 M00000007 CWGO314WABU 1
10 M00000007 CWGO326EAVI 1
11 M00000008 CFDO203COOW 1
12 M00000009 CWGK323EABL 1
13 M00000010 CFDO326EAVI 1
14 M00000010 CWGT337EANY 1
15 M00000011 CFDO203FIVI 1
Je dois convertir ces données à une matrice telle que j'ai un compte de la quantité pour chaque article dans PROD_CD contre chaque CNS_CD.
Si certains PROD_CD ne sont pas listés par rapport à un CNS_CD, ils devraient être dans la matrice avec la valeur 0. Essayer de les convertir en un format de matrice d'article utilisateur avec count.
classe (CNS_CD), classe (PROD_CD) est "caractère". Je essayé ceci:
acast(data = uiq,formula = CPH_CNS_CD~PROD_CD,fun.aggregate = count,value.var = uiq$QTY)
et obtenu cette erreur:
Error: value.var (1111111111111111111111111111111111111111111111111111
In addition: Warning message:
In if (!(value.var %in% names(data))) { :
the condition has length > 1 and only the first element will be used
Il fonctionne en quelque sorte lorsque les paramètres de fun.aggregate et value.var ne sont pas fournis avec la même fonction. Quel est le problème ici ou existe-t-il d'autres moyens d'atteindre le format requis?
CNS_CD CFGO301WABU DFGK122EARE CWGO154COGY CWGC003COTA .....
M00000001 1 0 0 0
M00000002 0 1 1 0
M00000004 0 0 0 1
Il renvoie une erreur que je l'ai mentionné dans la question ci-dessus. – TUSHAr
@Tushar Basé sur l'exemple, il ne me jette aucune erreur. J'ai fait quelques mises à jour dans le code. Veuillez réessayer. – akrun
Excuses. J'utilisais value.var = QTY. Merci beaucoup. Mais cela ne fonctionne pas quand je donne la fonction "count"? – TUSHAr