Ich möchte einen normalisierten Vektor separat in zwei Richtungen in R.Summe normierten Vektor getrennt in zwei Richtungen
Zum Beispiel für einen Vektor 3,4,5,6,10,9,8,7 nach Normierung 0.3, 0.4, 0.5, 0.6, 1.0, 0.9, 0.8, 07. Ich möchte die Werte < 1 links und rechts getrennt summieren und ihren Unterschied finden. In diesem Fall bleibt übrig = 0,3 + 0,4 + 0,5 + 0,6 = 1,8, rechts = 0,9 + 0,8 + 0,7 = 2,4. Der Unterschied ist rechts minus links gleich 0,6.
Im Folgenden sind einige meiner Gedanken:
a <- c(3,4,5,6,10,9,8,7)
norm <- a/max(a) # normalization
left <- sum(a[1:which.max(a)-1]) # left sum
right <- sum(a[which.max(a)+1:length(a)]) # right sum
diff <- right-left
Irgendwelche Vorschläge für Verbesserungen?
Vielleicht 'Reduce ('-', tapply (Norm, Cumsum (c (WAHR, (a == max (a)) [- 1])), FUN = Summe)) ' – akrun
Ich bekomme' 1.8' durch Summierung '0.3 + 0.4 + 0.5 + 0.6 # [1 ] 1.8' – akrun
guter Fund für meinen Mathefehler. Haha. – Jian