R에서 수정하는 방법: aggregate.data.frame()의 오류: 인수의 길이는 동일해야 합니다.


R에서 발생할 수 있는 오류는 다음과 같습니다.

 Error in aggregate.data.frame(as.data.frame(x), ...): 
  arguments must have same length 

이 오류는 Aggregate() 함수를 사용하여 R에서 데이터 프레임의 하나 이상의 열에 있는 값을 요약하려고 시도했지만 열을 참조할 때 데이터 프레임의 이름을 지정할 수 없을 때 발생합니다.

이 튜토리얼에서는 이 오류를 수정하는 방법을 정확하게 설명합니다.

오류를 재현하는 방법

R에 다음과 같은 데이터 프레임이 있다고 가정합니다.

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'C', 'C'),
                 points=c(5, 9, 12, 14, 14, 13, 10, 6, 15, 18))

#view data frame
df

   team points
1 to 5
2 to 9
3 to 12
4 to 14
5 to 14
6 B 13
7 B 10
8 B 6
9 C 15
10 C 18

이제 팀별 로 그룹화된 평균 점수 를 계산하기 위해 Aggregate() 함수를 사용한다고 가정해 보겠습니다.

 #attempt to calculate mean points value by team
aggregate(df$points, list(' team '), FUN=mean)

Error in aggregate.data.frame(as.data.frame(x), ...): 
  arguments must have same length

list() 인수에 데이터 블록 이름을 지정하지 못했기 때문에 오류가 발생합니다.

오류를 수정하는 방법

이 오류를 해결하는 방법은 list() 인수에 “team” 대신 df$team을 사용하는 것입니다.

 #calculate mean points value by team
aggregate(df$points, list(df$team), FUN=mean)

  Group.1 x
1 A 10.800000
2 B 9.666667
3 C 16.500000

list() 인수에 데이터 프레임 이름을 지정했기 때문에 이번에는 오류가 발생하지 않습니다.

list() 인수에 여러 열 이름을 사용하는 경우 각 열 이름에 대해 데이터 프레임 이름을 지정해야 합니다. 그렇지 않으면 오류가 발생합니다.

추가 리소스

다음 튜토리얼에서는 R의 다른 일반적인 오류를 해결하는 방법을 설명합니다.

R에서 수정하는 방법: 이름이 이전 이름과 일치하지 않습니다.
R에서 수정하는 방법: 긴 물체의 길이가 더 짧은 물체 길이의 배수가 아닙니다.
R에서 수정하는 방법: 대비는 수준이 2개 이상인 요인에만 적용할 수 있습니다.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다