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