2013-12-19 5 views
1

여러 요인 수준에 대한 요약 통계를 찾으려고합니다.다른 요인 수준에 대한 적용 패밀리를 사용하는 요약 통계

data.frame(apply(final_data[Company=="BPO",c(66:84)],2,summary)) 

이제 다른 값을 가진 company에 대한 값이 있습니다. 다른 값에 대한 설명을 반복 할 수 있습니다. 자동 적용이 가능하다는 것을 알고 있습니다. 적용되는 패밀리 (ddply, tapply, sapply)를 사용하지만 올바르지는 않습니다.

답변

2

당신은 회사에 분할 한 다음 기능을 사용할 수 있습니다 : 당신은 by 또는 tapply 기능을 사용하는 방법에 대해 생각 할 수 있습니다

spl = split(final_data, final_data$Company) 
list.of.summaries = lapply(spl, function(x) data.frame(apply(x[,66:84], 2, summary))) 
+0

감사합니다. 나는 상관 관계가있다. 다음과 같이'by (final_data [, c (66:85)], Company, function (x) cor (x))' – RUser

+0

확실하거나, : list.of.cor = lapply (spl, function (x) cor (x [66, 84])) – josliber

1

합니다. 이렇게하면 split에 대한 명시 적 호출을 건너 뛸 수 있습니다. 다음은 데이터를 제공하지 않았으므로 예제입니다.

> a 
     Min. 1st Qu. Median Mean 3rd Qu. Max. 
[1,] -0.8356 -0.54620 0.256600 0.1322 0.5537 1.5950 
[2,] -2.2150 -0.03775 0.491900 0.2488 0.9132 1.5120 
[3,] -1.9890 -0.39760 0.009218 -0.1337 0.5694 0.9190 
[4,] -1.3770 -0.32140 -0.056560 0.1207 0.6693 1.3590 
[5,] -0.7075 -0.23120 0.126100 0.1341 0.6619 0.8811 
[6,] -1.1290 -0.55080 0.103000 0.1435 0.5268 1.9800 
[7,] -1.8050 -0.02243 0.171000 0.4512 1.2720 2.4020 
[8,] -1.2540 -0.67980 -0.221100 -0.2477 0.2372 0.6107 
[9,] -1.5240 -0.26190 0.300000 0.1274 0.5380 1.1780 
[10,] -1.2770 -0.56560 0.042540 0.1123 1.0450 1.5870 

또한 무슨 일이 일어나고 있는지 변수 및 레벨 이름이 결합 할 수 있습니다 :

b <- expand.grid(level=levels(df$x),var=names(df[,2:3])) 
cbind(a,b) 

여기에 그 출력의 여기

# some example data 
set.seed(1) 
df <- data.frame(x = as.factor(rep(1:5, each=10)), y1=rnorm(50), y2=rnorm(50)) 

# with `tapply` 
a <- do.call(rbind, sapply(df[,2:3], function(i) tapply(i, df$x, summary))) 
# with `by` 
a <- do.call(rbind, sapply(df[,2:3], function(i) by(i, df$x, summary))) 

출력입니다 :

> cbind(b,a) 
    level var Min. 1st Qu. Median Mean 3rd Qu. Max. 
1  1 y1 -0.8356 -0.54620 0.256600 0.1322 0.5537 1.5950 
2  2 y1 -2.2150 -0.03775 0.491900 0.2488 0.9132 1.5120 
3  3 y1 -1.9890 -0.39760 0.009218 -0.1337 0.5694 0.9190 
4  4 y1 -1.3770 -0.32140 -0.056560 0.1207 0.6693 1.3590 
5  5 y1 -0.7075 -0.23120 0.126100 0.1341 0.6619 0.8811 
6  1 y2 -1.1290 -0.55080 0.103000 0.1435 0.5268 1.9800 
7  2 y2 -1.8050 -0.02243 0.171000 0.4512 1.2720 2.4020 
8  3 y2 -1.2540 -0.67980 -0.221100 -0.2477 0.2372 0.6107 
9  4 y2 -1.5240 -0.26190 0.300000 0.1274 0.5380 1.1780 
10  5 y2 -1.2770 -0.56560 0.042540 0.1123 1.0450 1.5870 
관련 문제