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