Jak naprawić w r: błąd: zduplikowane identyfikatory wierszy
Błąd, który możesz napotkać w R to:
Error: Duplicate identifiers for rows
Ten błąd występuje, gdy próbujesz użyć funkcji spread() do rozłożenia wartości jednej lub większej liczby kolumn w ramce danych na ich własne kolumny.
Jednak może wystąpić błąd, jeśli dla każdego wiersza nie ma unikalnego identyfikatora, więc podczas uruchamiania rozkładu nie ma możliwości określenia, które wartości należą do jakich obserwacji.
Poniższy przykład pokazuje, jak w praktyce skorygować ten błąd.
Przykład: Jak naprawić błąd
Załóżmy, że mamy następującą ramkę danych w R, która zawiera informacje o różnych koszykarzach:
#create data frame df <- data. frame (player=rep(c(' A ', ' B '), each= 4 ), year=rep(1:4, times= 2 ), assists=c(4, 10, 4, 4, 3, 7, 7, 6), dots=c(14, 6, 18, 7, 22, 9, 38, 4)) #view data frame df player year assists points 1 A 1 4 14 2 A 2 10 6 3 To 3 4 18 4 To 4 4 7 5 B 1 3 22 6 B 2 7 9 7 B 3 7 38 8 B 4 6 4
Załóżmy teraz, że chcemy przekształcić ramkę danych tak, aby kolumna roku była kolumną id i utworzyć nowe kolumny o nazwach asysty_A , asysty_B , punkty_A i punkty_B , aby reprezentowały asysty i wartości punktowe graczy A i B w ciągu każdego roku .
Ponieważ wartości w kolumnie rok nie będą unikalne (będą dwie jedynki, dwie dwójki itd.), funkcja spread() zwróci błąd.
Możemy jednak użyć funkcji obrotu_wider() z następującą składnią, aby utworzyć żądaną ramkę danych:
library (tidyr)
#spread the values in the points and assists columns
pivot_wider(data = df,
id_cols = year,
names_from = player,
values_from = c(' assists ', ' points '))
# A tibble: 4 x 5
year assists_A assists_B points_A points_B
1 1 4 3 14 22
2 2 10 7 6 9
3 3 4 7 18 38
4 4 4 6 7 4
Należy pamiętać, że nie otrzymujemy żadnych błędów i jesteśmy w stanie pomyślnie utworzyć nowe kolumny, które wyświetlają wartości punktowe i asystowe dla Graczy A i B w każdym z czterech lat.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak naprawić inne typowe błędy w R:
Jak naprawić w R: NA wprowadzone przez przymus
Jak naprawić w R: indeks poza zakresem
Jak naprawić w R: długość dłuższego obiektu nie jest wielokrotnością długości krótszego obiektu
Jak naprawić w R: ilość elementów do wymiany nie jest wielokrotnością długości wymiany