Как исправить в r: ошибка: повторяющиеся идентификаторы строк


Ошибка, с которой вы можете столкнуться в R:

 Error: Duplicate identifiers for rows

Эта ошибка возникает, когда вы пытаетесь использовать функцию распространения() для распределения значений одного или нескольких столбцов во фрейме данных по их собственным столбцам.

Однако может возникнуть ошибка, если для каждой строки нет уникального идентификатора, поэтому при запуске распределения нет возможности определить, какие значения каким наблюдениям принадлежат.

В следующем примере показано, как исправить эту ошибку на практике.

Пример: Как исправить ошибку

Предположим, у нас есть следующий кадр данных в R, содержащий информацию о различных баскетболистах:

 #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

Теперь предположим, что мы хотим преобразовать фрейм данных, чтобы столбец года был столбцом идентификатора, и создать новые столбцы с именами Assets_A , Assets_B , Points_A и Points_B , чтобы представить результативные передачи и значения очков игроков A и B в течение каждого года. .

Поскольку значения в столбце года не будут уникальными (будет две единицы, две двойки и т. д.), функция распространения() выдаст ошибку.

Однако мы можем использовать функцию Pivot_wider() со следующим синтаксисом для создания желаемого фрейма данных:

 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

Обратите внимание, что мы не получаем никаких ошибок и можем успешно создавать новые столбцы, в которых отображаются значения очков и передач для игроков A и B за каждый из четырех лет.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в R:

Как исправить в R: NA, введенные принудительно
Как восстановить в R: индекс выходит за пределы
Как исправить в R: длина более длинного объекта не кратна длине более короткого объекта
Как отремонтировать в R: количество заменяемых элементов не кратно длине замены

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *