2017-11-29 1 views
0

집계 함수를 사용하여 일부 데이터를 요약하고 있습니다. 데이터는 대출 데이터이며 ContractNum과 LoanAmount가 있습니다. StartDate로 데이터를 집계하고 대출 수와 대출 금액을 계산합니다.
여기 데이터의 샘플과 내가 사용하는 기능입니다 :R - 집계 함수 하위 목록 만들기

ContractNum <- c("RHL-1","RHL-2","RHL-3","RHL-3") 
StartDate <- c("2016-11-01","2016-11-01","2016-12-01","2016-12-01") 
LoanPurpose <- c("Personal","Personal","HomeLoan","Investment") 
LoanAmount <- c(200,500,600,150) 

dat <- data.frame(ContractNum,StartDate,LoanPurpose,LoanAmount) 



aggr.data <- aggregate(
    cbind(LoanAmount,ContractNum) ~ StartDate + LoanPurpose 
    ,data = dat 
    ,FUN = function(x)c(count = mean(x),length(x)) 
) 

것은 내가 집계 함수의 결과를 맞추지 때 확인 같습니다

> aggr.data 
    StartDate LoanPurpose LoanAmount.count LoanAmount.V2 ContractNum.count ContractNum.V2 
1 2016-12-01 HomeLoan    600    1    3.0   1.0 
2 2016-12-01 Investment    150    1    3.0   1.0 
3 2016-11-01 Personal    350    2    1.5   2.0 

을하지만 난 볼 때 나는 각 열에에게 내가 평소 방식에 액세스 할 수 있도록 내가이 하위 목록을 제거하려면 어떻게

> str(aggr.data) 
'data.frame': 3 obs. of 4 variables: 
$ StartDate : Factor w/ 2 levels "2016-11-01","2016-12-01": 2 2 1 
$ LoanPurpose: Factor w/ 3 levels "HomeLoan","Investment",..: 1 2 3 
$ LoanAmount : num [1:3, 1:2] 600 150 350 1 1 2 
    ..- attr(*, "dimnames")=List of 2 
    .. ..$ : NULL 
    .. ..$ : chr "count" "" 
$ ContractNum: num [1:3, 1:2] 3 3 1.5 1 1 2 
    ..- attr(*, "dimnames")=List of 2 
    .. ..$ : NULL 
    .. ..$ : chr "count" "" 

: 그것의 strucutre, 하위 목록을 만든 것 같다 DF에 접속 하시겠습니까? 나는 코드에서 의미가없는 ContractNum에 대한 의미를 알려달라고 요청했지만 이해할 수는있다.

+0

왜 이것을 다운 시키셨습니까? – jmich738

+0

예제 코드가 작동하지 않을 수 있습니까? 'aggr.data '를 만들 때 여분의')'가 있습니다. (나는 downvoter btw 아니에요). – thelatemail

답변

1

그냥 행렬을 unnest하는 aggr.datado.call(data.frame, ...)을 감사드립니다.

aggr.data <- do.call(data.frame, aggr.data); 
str(aggr.data); 
#'data.frame': 3 obs. of 6 variables: 
# $ StartDate  : Factor w/ 2 levels "2016-11-01","2016-12-01": 2 2 1 
# $ LoanPurpose  : Factor w/ 3 levels "HomeLoan","Investment",..: 1 2 3 
# $ LoanAmount.count : num 600 150 350 
# $ LoanAmount.V2 : num 1 1 2 
# $ ContractNum.count: num 3 3 1.5 
# $ ContractNum.V2 : num 1 1 2