2017-07-28 1 views
0

Mon but de ce code est de créer une boucle qui agrège la fréquence des mots de chaque société par un certain vecteur de principe que j'ai créé et l'ajoute à une liste. Le problème est, après que je cours ceci, il imprime seulement les 7 principes que j'ai plutôt que les fréquences de mot le long de eux. Le mot fréquences étant la colonne certaine de la trame de données FREQBYPRINC.AG. Individuellement, en exécutant ce code sans la boucle et en testant juste une certaine colonne, cela ne pose aucun problème. Pour une raison quelconque, la boucle ne veut pas me donner les trames de données correctes pour la liste. Aucune suggestion?Ne pas agréger correctement

list.agg<-vector("list",ncol(FREQBYPRINC.AG)-2) 
for (i in 1:14){ 
attach(FREQBYPRINC.AG) 
list.agg[i]<-aggregate(FREQBYPRINC.AG[,i+1],by=list(Type=principle),FUN=sum,na.rm=TRUE) 
} 
+0

Je ne sais pas pourquoi vous avez le 'attach()' dans la boucle 'for', il suffit de le faire une seule fois. De plus, le '[, i + 1]' semble un peu étrange. – Kevin

+0

Chaque fois que je vois un «for» dans r je sais que quelque chose ne va pas. – Masoud

+0

Veuillez fournir quelques exemples de données – CPak

Répondre

0

J'aimerais vraiment pouvoir vous aider. Après avoir lu votre déclaration, il semble que pour vous, vous sentez que le code devrait fonctionner et ce n'est pas le cas. Eh bien peut-être qu'il existe un petit problème.

Étant donné que vous avez déjà spécifié la liste. En tant que liste, vous devez la subdiviser en doubles crochets. Essayez celui-ci:

list.agg<-vector("list",ncol(FREQBYPRINC.AG)-2) 
    for (i in 1:14){ 
    list.agg[[i]]<-aggregate(FREQBYPRINC.AG[,i+1],by=list 
           (Type=principle),FUN=sum,na.rm=TRUE)}