Je suis tout à fait nouveau à R et ont une question sur les bouclesdouble boucle en R
Dans mon vrai jeu de données il y a 7000 observations dans 80 pays avec 15 secteurs et 6 types d'organisations, mais voici un exemple simplifié.
country <- c("a","a","a","a","a","a","b","b","b","b","b","b",
"c","c","c","c","c","c","d","d","d","d","d","d")
sector <- c("a","a","a","b","c","c","a","b","b","b","c","c",
"b","b","b","b","c","c","a","a","b","b","c","c")
organization <-c("a","b","c","c","b","a","a","b","b","c","b","b",
"c","a","a","b","b","c","c","b","a","a","b","c")
budget <-c(2,4,3,5,9,7,5,4,3,6,1,2,4,5,6,1,5,3,4,2,3,5,4,6)
table <- data.frame(country, sector, organization, budget)
Ce que je veux:
- Montant des différents types d'organisations dans un secteur spécifique dans un pays spécifique.
- Pourcentage du budget total dans un secteur donné aux différents types d'organisations.
Je dois d'abord faire un sous-ensemble pour sélectionner les informations seulement de pays « un » secteur « a »
smalltable <-subset(table, (country == "a") & (sector == "a"))
puis répondre à ma première question, combien de chaque type d'organisation sont en un secteur dans un pays
smalltable$count <- table(smalltable$organization)
alors je dois trouver le pourcentage de financement
smalltable$percentage <- smalltable$budget/sum(smalltable$budget)
alors j'utilisé tapply
N <- tapply(smalltable$count, smalltable$organization, FUN=sum)
financialshare <- tapply(smalltable$percentage, smalltable$organization, FUN=sum)
et enfin combiné ceci:
total <- data.frame (smalltable$country,smalltable$sector,smalltable$organization, N,financialshare)
total
C'est la petite table que je requiers!
Mais j'ai besoin de ceci pour tous mes 15 secteurs et dans chacun des 80 pays, ainsi j'ai besoin d'une sorte de fonction de boucle qui exécute une boucle de tous les secteurs et répète cette boucle pour chaque pays. Je dois faire ces tables aussi condensées que possible, regroupant toutes les informations sur 1 pays (donc 15 secteurs) dans une table. Les valeurs zéro doivent également être supprimées des tables pour économiser de l'espace.
Comment dois-je procéder?
oui, mais avec tous les secteurs dans un pays spécifique dans un cadre. Donc pour l'échantillon je voudrais avoir 4 dataframes spécifiques au pays à transférer à excel – user1466195