Jak naprawić w r: wymiana ma x wierszy, dane mają y


Komunikat o błędzie, który możesz napotkać podczas korzystania z R, to:

 Error in `$<-.data.frame`(`*tmp*`, conf_full, value = c("West", "West",: 
  replacement has 3 rows, data has 5

Ten błąd występuje, gdy próbujesz dodać nową kolumnę do ramki danych, której wartości są oparte na istniejącej kolumnie, ale nie możesz najpierw utworzyć nowej kolumny.

Poniższy przykład pokazuje, jak w praktyce rozwiązać ten błąd.

Jak odtworzyć błąd

Załóżmy, że tworzymy następującą ramkę danych w R:

 #create data frame
df <- data. frame (conference=c('W', 'W', 'W', 'E', 'E'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34))	

#view data frame
df

  conference points assists
1 W 99 33
2 W 90 28
3 W 86 31
4 E 88 39
5 E 95 34

Załóżmy teraz, że próbujemy dodać nową kolumnę do ramki danych o nazwie conf_full :

 #attempt to create new column based on conference name
df$conf_full[which(df$conference==' W ')] <- ' West '
df$conf_full[which(df$conference==' E ')] <- ' East '

Error in `$<-.data.frame`(`*tmp*`, conf_full, value = c("West", "West",: 
  replacement has 3 rows, data has 5

Otrzymujemy błąd, ponieważ zmienna o nazwie conf_full jeszcze nie istnieje, co oznacza, że nie możemy jeszcze przypisać wartości do tej kolumny.

Jak uniknąć błędu

Aby uniknąć tego błędu, możemy najpierw utworzyć zmienną conf_full i po prostu przypisać jej wartości NA:

 #create conf_full variable
df$conf_full <- NA

Teraz, gdy zmienna istnieje, możemy przypisać jej wartości:

 #create new column based on conference
df$conf_full[which(df$conference==' W ')] <- ' West '
df$conf_full[which(df$conference==' E ')] <- ' East '

#view updated data frame
df

  conference points assists conf_full
1 W 99 33 West
2 W 90 28 West
3 W 86 31 West
4 E 88 39 East
5 E 95 34 East

Zauważ, że tym razem nie otrzymaliśmy żadnych błędów, ponieważ najpierw utworzyliśmy zmienną conf_full przed próbą przypisania do niej wartości.

Dodatkowe zasoby

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

Jak naprawić w R: argumenty obejmują różną liczbę linii
Jak naprawić w R: błąd w wyborze nieużywanych argumentów
Jak naprawić w R: wymiana ma zerową długość

Dodaj komentarz

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