2016-07-05 7 views
0

Ich habe diesen Code in R bekommt:R Schleife fehlender Wert in die WAHR/FALSCH benötigt

j <- 1 
k <- nrow(group_IDs) 

    while (j <= k) 
     { 
      d_clust <- Mclust(Customers_Attibutes_s[which (Customers_Attibutes_s$Group_ID == group_IDs$Group_ID[j]),3:7], G=2:7) 
      temp <- cbind(Customers_Attibutes[which  (Customers_Attibutes$Group_ID == group_IDs$Group_ID[j]),], as.data.frame (predict.Mclust(d_clust, Customers_Attibutes[which(Customers_Attibutes$Group_ID  == group_IDs$Group_ID[j]), 3:7]))[1]) 
      temp_ <- rbind(temp,temp_) 
      j <- j+1 
     } 

j <= k in der while-Anweisung zurückgibt diesen Fehler:

missing value where TRUE/FALSE needed.

group_IDs nicht null ist und es enthält in diesem Fall tatsächlich den Wert 8. Es scheint in die Schleife zu kommen und in der zweiten Runde zu stürzen.

+0

Können Sie uns zeigen, wie group_IDs aussieht? – rosscova

+0

Was gibt 'nrow (group_IDs) zurück? – rosscova

+0

nrow (group_IDs) ist ein Vektor, der in diesem Fall nur einen Wert enthält. Der Wert ist Nummer 8, aber es könnte sich um eine beliebige Anzahl von Zahlen handeln. –

Antwort

0

Sie rund um die Indizierung Probleme bekommen können for, zB mit:

for (ID in group_IDs) {}

Dies setzt natürlich voraus, dass GROUP_IDs ist ein Vektor von Werten.

Hinweis: Ihr Code zeigt Folgendes innerhalb der Schleife group_IDs$Group_ID[j], die etwas anderes als einen Vektor impliziert; vielleicht meintest du group_IDs[j]?

+0

Technisch ist es ein Datenrahmen mit einer Spalte. Das habe ich auch versucht. –

+0

In diesem Fall: 'for (ID in group_IDs $ Group_ID)' –

0

Da group_ IDs ein Vektor ist, versuchen Sie length(group_IDs) anstelle von nrow. Ein Vektor hat keine Zeilen, also ist das Äquivalent length.

Hier ist, was ich vermute, geschieht:

> group_IDs <- 8 
> nrow(group_IDs) 
NULL 
+0

Ich wusste nicht, dass nrow einen Vektor zurückgeben könnte? Das OP spezifiziert in der ursprünglichen Frage, dass "group_IDs ... enthält den Wert 8", also nehme ich an, dass der Vektor ist, von dem sie sprechen? – rosscova

+0

Entweder Länge oder Nein, es wird immer der gleiche Fehler ausgegeben. –

+0

Nur um klar zu sein, ist 'group_IDs' ein Vektor? – rosscova