2013-07-28 4 views
2

샘플에서 여러 수준의 요인에 대한 경험적 분포를 얻으려고합니다. 실행 어떤 이유 빈 데이터 프레임을 건너 뜁니다.

, 다음
a <- daply(caseDataset, x, nrow)/nrow(caseDataset) 

이 데이터 세트는 요인의 수준에 값이없는 경우에 좀 NA를 제공 X 그래서

와 결과를 우선 사용해야합니다
a[is.na(a)] <- 0 

어떻게하면 daply가 동일한 동작을하고 (빈 데이터 프레임을 무시할 수 있습니까?) caseDataset에 대한

샘플 :

dataset <- data.frame(
    a1  = c(TRUE,TRUE,TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE), 
    a2  = c(TRUE,TRUE,FALSE,FALSE,TRUE,TRUE,FALSE,FALSE,TRUE), 
    a3  = c(1,6,5,4,7,3,8,7,5), 
    target = c('+','+','-','+','-','-','-','+','-')) 

caseDataset <- subset(dataset, target=='-') 

daply(caseDataset, "target", nrow) 
+1

이 동작을 설명하지 않습니다,하지만 당신은 기본 R로이 작업을 수행 할 수 있습니다 a'prop.table (표 (caseDataset $는 X))' – Justin

+0

당신은'caseDataset'의 샘플을 게시 할 수 있습니까? –

답변

1

.drop_i 스위치 당신이 후에 무엇을 할 수 있습니까?

> daply(caseDataset, "target", nrow, .drop_i=FALSE) 
- + 
5 0 
관련 문제