Jak naprawić w r: dim(x) musi mieć długość dodatnią


Błąd, który możesz napotkać w R to:

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

Ten błąd występuje, gdy próbujesz użyć funkcji Apply() do obliczenia metryki dla kolumny ramki danych lub macierzy, podając wektor jako argument zamiast ramki danych lub macierzy.

W tym samouczku dokładnie wyjaśniono, jak naprawić ten błąd.

Jak odtworzyć błąd

Załóżmy, że mamy następującą ramkę danych w 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

Załóżmy teraz, że spróbujemy użyć funkcji Apply() do obliczenia średniej wartości w kolumnie „punkty”:

 #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

Występuje błąd, ponieważ funkcja Apply() musi zostać zastosowana do ramki danych lub macierzy, ale w tym przykładzie próbujemy zastosować ją do określonej kolumny w ramce danych.

Jak naprawić błąd

Sposobem na naprawienie tego błędu jest po prostu podanie nazwy ramki danych do funkcji Apply() w następujący sposób:

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

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

Na podstawie danych wyjściowych możemy zobaczyć średnią wartość każdej kolumny w ramce danych. Przykładowo średnia wartość kolumny „punkty” wynosi 92 625 .

Możemy również użyć tej funkcji, aby znaleźć tylko średnią z określonych wartości w ramce danych:

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

point blocks 
92,625 8,375

Wreszcie, jeśli chcemy znaleźć średnią pojedynczej kolumny, możemy użyć funkcji Mean() bez korzystania z funkcji Apply() :

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

[1] 92,625

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak rozwiązać inne typowe błędy w języku R:

Jak naprawić w R: Nazwy nie pasują do poprzednich nazw
Jak naprawić w R: długość dłuższego obiektu nie jest wielokrotnością długości krótszego obiektu
Jak naprawić w R: kontrasty można zastosować tylko do czynników o 2 lub więcej poziomach

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *