2014-09-29 6 views
2

data.frame에 대한 요약을 생성하기 위해 tapply을 사용했습니다. 예 :데이터 프레임 요약을 데이터 프레임으로 저장

s <- with(mtcars, tapply(mpg, cyl, summary)) 

s의 클래스가 배열임을 알 수 있습니다. tapply 개의 출력을 다른 data.frame으로 변환하는 간단한 방법이 있습니까?

+0

'()'tapply'보다 더 나은 기능을 선택 집계 수 있습니다()'원하는 출력을 제공합니다. – MrFlick

+0

@MrFlick, aggregate의 집계 된 열은'matrix'입니다. 'do.call (data.frame, aggregate (...)) '접근 방식이 필요하다. – A5C1D2H2I1M1N2O1R2T1

+0

@AnandaMahto를 테스트 해 주셔서 감사합니다. 나는 내가 할 수없는 모바일 장치 위에 있었다. – MrFlick

답변

4

일반적인 접근 방식은 다음과 같이 do.call(rbind, ...)을 사용하는 것입니다 as.data.frame

을 포장 이전 코멘트에 @akrun에서 언급 한 바와 같이
do.call(rbind, s) 
# Min. 1st Qu. Median Mean 3rd Qu. Max. 
# 4 21.4 22.80 26.0 26.66 30.40 33.9 
# 6 17.8 18.65 19.7 19.74 21.00 21.4 
# 8 10.4 14.40 15.2 15.10 16.25 19.2 

, 당신에게 data.frame을 얻을 것입니다. 당신이 대안에 열려 있으면


, 당신은 또한있는 당신이 할 수있다 "data.table"시도 할 수 있습니다 :

library(data.table) 
as.data.table(mtcars)[, as.list(summary(mpg)), by = cyl] 
# cyl Min. 1st Qu. Median Mean 3rd Qu. Max. 
# 1: 6 17.8 18.65 19.7 19.74 21.00 21.4 
# 2: 4 21.4 22.80 26.0 26.66 30.40 33.9 
# 3: 8 10.4 14.40 15.2 15.10 16.25 19.2 
관련 문제