Ich habe posted my problem seit ein paar Monaten und denke, dass alles in Ordnung war, aber es scheint, dass nein. Und es tut mir leid für die vielen Beiträge.Gewichtung Daten - inkohärentes Ergebnis wieder
DF=structure(list(Age = c(16L, 29L, 22L, 64L, 42L, 46L, 30L, 37L, 31L, 52L, 44L, 54L, 23L, 22L, 42L, 39L, 39L, 51L, 25L, 64L, 55L, 56L, 27L, 31L, 39L, 22L, 54L, 33L, 34L, 18L, 39L, 41L, 52L, 41L, 27L, 36L, 64L, 42L, 21L, 44L, 50L, 35L, 22L, 65L, 53L, 18L, 25L, 59L, 56L, 52L, 39L, 40L, 25L, 63L, 43L, 23L, 52L, 48L, 24L, 45L, 27L, 42L, 56L, 43L, 28L, 51L, 54L, 16L, 65L, 56L, 47L, 45L, 29L, 41L, 52L, 50L, 26L, 44L, 35L, 55L, 57L, 43L, 52L, 28L, 33L, 20L, 39L, 15L, 55L, 20L, 30L, 10L, 54L, 51L, 47L, 36L, 42L, 33L, 26L, 29L, 19L, 22L, 22L, 22L, 40L, 33L, 20L, 43L, 53L, 25L, 25L, 49L, 25L, 31L, 45L, 51L, 60L, 54L, 20L, 25L, 60L, 48L, 35L, 42L, 14L, 28L, 55L, 20L, 35L, 17L, 46L, 20L, 45L, 37L, 33L, 36L, 60L, 47L, 27L, 25L, 51L, 32L, 19L, 25L, 19L, 60L, 18L, 17L, 33L, 26L, 33L, 32L, 33L, 22L, 17L, 24L, 43L, 38L, 27L, 40L, 42L, 41L, 31L, 43L, 34L, 33L, 42L, 37L, 24L, 50L, 53L, 35L, 50L, 37L, 46L, 39L, 33L, 56L, 58L, 23L, 31L, 52L, 50L, 33L, 56L, 55L, 20L, 22L, 44L, 50L, 30L, 58L, 59L, 16L, 33L, 53L, 50L, 20L, 31L, 22L, 38L, 59L, 38L, 62L, 52L, 30L, 18L, 53L, 38L, 41L, 44L, 53L, 19L, 53L, 57L),
Sous_Categorie = c("7", "7", "7", "7", "7", "7", "7", "7",
"7", "7", "7", "7", "7", "7", "7", "7", "7", "7", "7", "7",
"7", "7", "7", "7", "7", "7", "7", "7", "7", "7", "7", "7",
"7", "7", "7", "7,9", "8", "8", "8", "8", "8", "9", "9",
"11", "10,7", "10,8,9", "7", "7", "7", "7", "7", "7,8", "8",
"7", "7", "7", "7", "7", "7", "7", "7", "7", "7", "7", "8",
"11", "7", "12", "12", "12", "12", "12", "12", "12", "12",
"12", "12", "12", "12", "12", "12", "12", "12", "13", "13",
"13", "13", "13", "14", "14", "14", "14", "14", "14", "14",
"14", "14", "14", "14", "14", "14", "14", "14", "14", "14",
"14", "14", "14", "15", "15", "15", "15", "15", "17", "17",
"17", "17", "17", "17", "17", "17", "17", "17", "17", "17",
"17", "17", "17", "17", "17", "17", "17", "17", "17", "17",
"17", "17", "17", "17", "17", "17", "17", "17", "17", "17",
"17", "17", "17", "17", "17", "17", "17", "17", "17", "17",
"17", "17", "17", "17", "17", "17", "17", "17", "17", "17",
"17", "17", "17", "17", "17", "17", "17", "17", "17", "17",
"17", "17", "17", "17", "17", "17", "17", "17", "17", "17",
"17", "17", "17", "17", "17", "18", "18", "18", "7,12", "7,12",
"7,12", "7,12", "7,13,17", "7,16", "7,17", "7,17", "7,17",
"7,17", "7,17", "8,17", "8,17", "11,17", "7,17", "7,17",
"8,17", "7,17", "7,17", "12,14", "12,15", "17,18")), .Names = c("Age", "Sous_Categorie"), row.names = c(NA, -215L), class = "data.frame")
Und hier die vorgeschlagene und akzeptierte Lösung:
cat_perc <- function(vec) {
# percentages
nums <- table(as.numeric(unlist(strsplit(vec, ','))))
perc <- nums/sum(nums)
final <- perc * length(vec)
return(final)
}
cat_perc(DF$Sous_Categorie)
Ich habe gerade Ergebnisse überprüft, ich verwende dieses Skript seit vielen Wochen, aber was mir aufgefallen ist, dass Gewichtung falsch zu sein scheint : Das Ziel war, 1 zu vergeben, wenn es keine Kombination gibt, und wenn die Kombination durch Komma getrennt ist: 1,3, wird es 0,5, 0,5 für jeden sein, für die Kombination solcher 1,2,3 wird es 1/3 sein , 1/3, 1/3. Ich habe manuell für 7 überprüft, dieses Skript zeigt mir an, dass ich 61.9341564 habe, während ich manuell habe: 52 * 1 + 0.5 * 17 + (1/3 * 1) = 60.83333, wo ist das Problem :(? Danke
Warum würden Sie nicht den Mann fragen, wer sie beantwortet? –
@alistaire Bitte überprüfen Sie diese Frage –
Da dieses Skript durch zwei Beiträge erstellt wurde .. Gibt es eine andere einfachste Lösung? Es tut mir leid für das .. – ranell