Ich versuche, die Summe der einzelnen Bin mit einem zufälligen Vektor zu finden, aber der Code gibt nur das erste Element des Vektors als 100 zurück. Wie würde ich durch jedes der Elemente im Vektor durchlaufen x
, überprüfen, ob es sich um den Bereich j
handelt, und die Summe für jeden Behälter zurückgeben?Rechenbereiche in Bins
Ich weiß, es gibt Funktionen, dies in R
zu tun, aber ich arbeite an der harten Codierung dieses spezifische Beispiel.
# Sample data
set.seed(1234)
x <- rnorm(100)
S <- range(x)
a <- range(x)[1]
b <- range(x)[2]
J <- 5 #bins
h <- (b - a)/J #interval
for (j in 1:J){
for (n in 1:length(x)){
ifelse(x[n] > a + (j-1)*h & (x[n] <= a + j*h), n[j] <- n[j] + 1, n[j] <- n[j] + 0)
}
}
Ausgang:
> n
[1] 100 NA NA NA NA
gewünschte Ausgabe:
> n
[1] 7 43 29 13 8
@ZheyuanLi Ich arbeite an der harten Kodierung eines Dichteschätzers und dies ist ein Versuch an einem Histogrammschätzer. Wie ich bereits erwähnt habe, habe ich gemerkt, dass es einfachere Wege gibt, dies zu tun, aber ich bin auf eine härtere Art und Weise, Dinge zu tun, um die Methode zu lernen. – Vedda
'if' liefert die gleiche Ausgabe. Ich habe das ursprünglich versucht: 'if (x [n]> a + (j-1) * h & (x [n] <= a + j * h)) {n [j] <- n [j] + 1 } ' – Vedda
@ZheyuanLi Yup, das war es. Ändern Sie Ihre Antwort und ich werde es markieren ... Danke! – Vedda