R에서 수정하는 방법: 집계 함수 누락, 기본값은 "길이"입니다.


R을 사용할 때 발생할 수 있는 오류는 다음과 같습니다.

 Aggregation function missing: defaulting to length

이 오류는 reshape2 패키지의 dcast 함수를 사용하여 긴 형식의 데이터 프레임을 넓은 형식으로 변환할 때 발생하지만 넓은 데이터 프레임의 개별 셀에 여러 값이 배치될 수 있습니다.

다음 예에서는 실제로 이 오류를 수정하는 방법을 보여줍니다.

오류를 재현하는 방법

다양한 제품의 판매 정보를 포함하는 다음과 같은 데이터 프레임이 R에 있다고 가정합니다.

 #create data frame
df <- data. frame (store=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 promotion=c('Y', 'Y', 'N', 'N', 'Y', 'Y', 'N', 'N'),
                 product=c(1, 2, 1, 2, 1, 2, 1, 2),
                 sales=c(12, 18, 29, 20, 30, 11, 15, 22))

#view data frame
df

  store promotion product sales
1 AY 1 12
2 AY 2 18
3 YEAR 1 29
4 YEAR 2 20
5 BY 1 30
6 BY 2 11
7 BN 1 15
8 BN 2 22

이제 dcast 함수를 사용하여 데이터 프레임을 긴 형식에서 와이드 형식으로 변환하려고 한다고 가정합니다.

 library (reshape2)

#convert data frame to wide format
df_wide <- dcast(df, store ~ product, value. var = " sales ")

#view result
df_wide

Aggregation function missing: defaulting to length
  store 1 2
1 to 2 2
2 B 2 2

dcast 함수는 작동하지만 Aggregate Function Missing 경고 메시지가 표시됩니다.

오류를 수정하는 방법

우리가 경고 메시지를 받는 이유는 매장제품 의 각 조합에 대해 판매 에 사용할 수 있는 두 가지 잠재적 값이 있기 때문입니다.

예를 들어 매장 A와 제품 1의 경우 판매 값은 12 또는 29일 수 있습니다.

따라서 dcast 함수의 기본값은 집계 함수로 “length”입니다.

예를 들어 대규모 데이터베이스는 매장 A와 제품 1에 대해 총 2개의 판매 값이 있음을 알려줍니다.

대신 다른 집계 함수를 사용하려면 fun.aggregate 를 사용할 수 있습니다.

예를 들어, 다음 구문을 사용하여 매장 별 및 제품 별 매출 합계를 계산할 수 있습니다.

 library (reshape2)

#convert data frame to wide format
df_wide <- dcast(df, store ~ product, value. var = " sales ", fun. aggregate =sum)

#view result
df_wide

  store 1 2
1 A 41 38
2 B 45 33

대규모 데이터 프레임의 값을 해석하는 방법은 다음과 같습니다.

  • 매장 A와 상품 1의 매출 합계는 41 입니다.
  • 매장 A와 상품 2의 매출 합계는 38 입니다.
  • B 매장과 제품 1의 매출 합계는 45 입니다.
  • B 매장과 제품 2의 매출 합계는 33 입니다.

이번에는 fun.aggregate 인수를 사용했기 때문에 경고 메시지가 표시되지 않습니다.

추가 리소스

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

R에서 수정하는 방법: 예상치 못한 문자열 상수
R 수정 방법: ExtractVars의 잘못된 템플릿 수식
R에서 수정하는 방법: 인수가 숫자도 아니고 논리도 아닙니다. return na

의견을 추가하다

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