R 수정 방법: 오류: 행의 중복 식별자
R에서 발생할 수 있는 오류는 다음과 같습니다.
Error: Duplicate identifiers for rows
이 오류는 Spread() 함수를 사용하여 데이터 프레임에 있는 하나 이상의 열 값을 자체 열에 분산시키려고 할 때 발생합니다.
그러나 각 행마다 고유한 ID가 없으면 오류가 발생할 수 있으므로 분포를 실행할 때 어떤 값이 어떤 관측값에 속하는지 확인할 방법이 없습니다.
다음 예에서는 실제로 이 오류를 수정하는 방법을 보여줍니다.
예: 오류 수정 방법
다양한 농구 선수에 대한 정보를 포함하는 다음과 같은 데이터 프레임이 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
이제 연도 열을 id 열로 포함하도록 데이터 프레임을 변환하고, 매년 진행되는 동안 플레이어 A와 B의 어시스트 및 포인트 값을 나타내기 위해 어시스트_A , 어시스트_B , 포인트_A 및 포인트_B 라는 새 열을 생성한다고 가정합니다. .
연도 열의 값은 고유하지 않으므로(1이 2개, 2가 2개 등이 있음) Spread() 함수에서 오류가 발생합니다.
그러나 원하는 데이터 프레임을 생성하기 위해 다음 구문과 함께 ivot_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
오류가 발생하지 않으며 4년마다 플레이어 A와 B의 포인트 및 어시스트 값을 표시하는 새 열을 성공적으로 생성할 수 있습니다.
추가 리소스
다음 튜토리얼에서는 R의 다른 일반적인 오류를 수정하는 방법을 설명합니다.
R에서 수정하는 방법: 강제로 인해 발생하는 NA
R에서 복구하는 방법: 범위를 벗어난 인덱스
R에서 수정하는 방법: 긴 물체의 길이가 더 짧은 물체 길이의 배수가 아닙니다.
R에서 수리하는 방법: 교체할 요소 수가 교체 길이의 배수가 아닙니다.