So beheben sie das problem in r: dim(x) muss eine positive länge haben


Ein Fehler, der in R auftreten kann, ist:

 Error in apply(df$var1, 2, mean): dim(X) must have a positive length 

Dieser Fehler tritt auf, wenn Sie versuchen, mit der Funktion apply() eine Metrik für eine Spalte eines Datenrahmens oder einer Matrix zu berechnen und dabei einen Vektor als Argument anstelle eines Datenrahmens oder einer Matrix angeben.

In diesem Tutorial wird genau erklärt, wie Sie diesen Fehler beheben können.

So reproduzieren Sie den Fehler

Angenommen, wir haben den folgenden Datenrahmen in R:

 #create data frame
df <- data. frame (points=c(99, 97, 104, 79, 84, 88, 91, 99),
                 rebounds=c(34, 40, 41, 38, 29, 30, 22, 25),
                 blocks=c(12, 8, 8, 7, 8, 11, 6, 7))

#view data frame
df

  points rebound blocks
1 99 34 12
2 97 40 8
3 104 41 8
4 79 38 7
5 84 29 8
6 88 30 11
7 91 22 6
8 99 25 7

Nehmen wir nun an, wir versuchen, mit der Funktion apply() den Durchschnittswert in der Spalte „Punkte“ zu berechnen:

 #attempt to calculate mean of 'points' column
apply(df$points, 2, mean)

Error in apply(df$points, 2, mean): dim(X) must have a positive length

Ein Fehler tritt auf, weil die Funktion apply() auf einen Datenrahmen oder eine Matrix angewendet werden muss. In diesem Beispiel versuchen wir jedoch, sie auf eine bestimmte Spalte im Datenrahmen anzuwenden.

So beheben Sie den Fehler

Um diesen Fehler zu beheben, geben Sie der Funktion apply() einfach den Namen des Datenrahmens wie folgt an:

 #calculate mean of every column in data frame
apply(df, 2, mean)

  points rebound blocks 
  92,625 32,375 8,375 

Aus der Ausgabe können wir den Durchschnittswert jeder Spalte im Datenrahmen sehen. Der Durchschnittswert der Spalte „Punkte“ beträgt beispielsweise 92.625 .

Wir können diese Funktion auch verwenden, um nur den Durchschnitt bestimmter Werte im Datenrahmen zu ermitteln:

 #calculate mean of 'points' and 'blocks' column in data frame
apply(df[c(' points ', ' blocks ')], 2, mean)

point blocks 
92,625 8,375

Wenn wir schließlich den Durchschnitt einer einzelnen Spalte ermitteln möchten, können wir die Funktion Mean() verwenden, ohne die Funktion apply() überhaupt zu verwenden:

 #calculate mean of 'points' column
mean(df$points)

[1] 92,625

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in R beheben können:

So beheben Sie das Problem in R: Namen stimmen nicht mit vorherigen Namen überein
So beheben Sie das Problem in R: Die Länge eines längeren Objekts ist kein Vielfaches der Länge eines kürzeren Objekts
So korrigieren Sie in R: Kontraste können nur auf Faktoren mit 2 oder mehr Ebenen angewendet werden

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert