J'essaie de comprendre comment manipuler les données here. L'image ne montre qu'un seul cours, mais j'ai plusieurs cours et numéros de cours qui vont de 2010 à 2017. Comment dois-je ajouter une colonne indiquant la note médiane pour un certain cours basé sur l'année, enseigné et à terme? Nous avons le nombre d'enfants qui ont obtenu une certaine note, mais pas les notes réelles. Je m'attends à ce que la colonne de la note médiane devrait 11 dupliquer pour les 11 différents grades en fonction de chaque variable «enseignée». Enseigné ne peut avoir que deux valeurs, soit "ici" ou "là".Obtenir la médiane implicitement dans R de 2 colonnes
J'ai essayé d'utiliser la fonction d'agrégat mais ce problème ne semble pas pouvoir être résolu avec des fonctions de haut niveau. Le DB est DBKids dans R. Je ne peux pas sembler penser à un moyen qui peut m'aider avec ce problème. Merci!
Edit: Code Reproductibles
structure(list(sessionYear = c(2010, 2010, 2010, 2010, 2010,
2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010,
2010, 2010, 2010, 2010, 2010, 2010), courseNumber = c("20", "20",
"20", "20", "20", "20", "20", "20", "20", "20", "20", "20", "20",
"20", "20", "20", "20", "20", "20", "20", "20", "20"),
courseName = c("KidsLearn", "KidsLearn", "KidsLearn", "KidsLearn",
"KidsLearn", "KidsLearn", "KidsLearn", "KidsLearn", "KidsLearn",
"KidsLearn", "KidsLearn", "KidsLearn", "KidsLearn", "KidsLearn",
"KidsLearn", "KidsLearn", "KidsLearn", "KidsLearn", "KidsLearn",
"KidsLearn", "KidsLearn", "KidsLearn"), Taught = c("There",
"Here", "There", "Here", "There", "Here", "There",
"Here", "There", "Here", "There", "Here", "There",
"Here", "There", "Here", "There", "Here", "There",
"Here", "There", "Here"), Term = c("1", "1", "1", "1", "1",
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1",
"1", "1", "1", "1"), averageGrade = c(83, 84, 83, 84, 83, 84,
83, 84, 83, 84, 83, 84, 83, 84, 83, 84, 83, 84, 83, 84, 83, 84
), Grade = c("F", "F", "D", "D", "C3", "C3", "C2", "C2", "C1",
"C1", "B3", "B3", "B2", "B2", "B1", "B1", "A3", "A3", "A2", "A2",
"A1", "A1"), numberOfKids = c(1, 0, 0, 0, 1, 0, 1, 0, 0, 0,
3, 0, 3, 2, 6, 0, 14, 7, 24, 4, 18, 4)), class = "data.frame", row.names = c(NA,
-22L), .Names = c("sessionYear", "courseNumber", "courseName",
"Taught", "Term", "averageGrade", "Grade", "numberOfKids"))
Hope this helps.
Choisissez et suivez votre méthode de groupe/agrégat préférée à partir de la R-FAQ [Comment calculer moyenne par groupe?] (Https://stackoverflow.com/q/11562656/903061), mais remplacez «mean» par «weighted» .median' du paquet 'spatstat'. ([Ou l'un des autres paquets qui l'implémentent] (https://www.rdocumentation.org/search?q=weighted.median&latest=1)). Vous aurez probablement besoin de convertir les niveaux de facteur en nombre entier avec 'as.integer' (assurez-vous que les niveaux sont ordonnés correctement!) – Gregor
Il est plus facile de vous aider si vous fournissez un [exemple reproductible] (https://stackoverflow.com/questions/5963269/comment-faire-un-grand-r-reproductible-exemple). Les images de données ne sont pas très utiles. Essayez un 'dput()' ou utilisez un exemple de jeu de données intégré pour illustrer votre problème. Donne la sortie désirée. – MrFlick
J'ai ajouté le code. Merci pour la suggestion! –