[R 프로그래밍] apply 함수군 (lapply, sapply, tapply) R 프로그래밍

2016. 4. 23. 11:46·IT기술 관련/빅데이터 관련
반응형

/*

 * http://sosal.kr/
 * made by so_Sal
 */


 


apply() 함수는 벡터, 행렬 등의 데이터 프레임에서 row/column 단위의 계산을 할 때 함수를 쉽게 적용할 수 있도록 도와준다.

apply 함수 외에 리스트, 벡터, 테이블 형태로 결과를 반환해주는 lapply, sapply, tapply 함수에 대해 알아보자.


 

실습데이터)

> weight <- c(65.4, 55, 380, 72.2, 51, NA)

> height <- c(170, 155, NA, 173, 161, 166)

> gender <- c("M", "F","M","M","F","F")

> testDate <- c("2013/09/01", "2013/09/01", "2013/09/05", "2013/09/14", "2013/10/11", "2013/10/26")

> patients <- data.frame( weight = weight, height=height, gender=gender, testDate=testDate)


> patients.sub <- patients[ ,c("weight","height")]

> patients.sub

  weight height

1   65.4    170

2   55.0    155

3  380.0     NA

4   72.2    173

5   51.0    161

6     NA    166

 

 

- 각 환자(row)별로 몸무게와 키의 평균을 구한다
> apply(patients.sub, 1, mean)

[1] 117.7 105.0    NA 122.6 106.0    NA

 

- NA는 빼고 계산한다

> apply(patients.sub, 1, mean, na.rm=TRUE)
[1] 117.7 105.0 380.0 122.6 106.0 166.0

- 각 특성(Column)별로 평균을 구한다

> apply(patients.sub, 2, mean, na.rm=TRUE)
weight height
124.72 165.00

- 각 셀에 2를 곱해준다

MulTwo <- function(x){ return(2*x) }
> apply(patients.sub, c(1,2), MulTwo)
     weight height
[1,]  130.8    340
[2,]  110.0    310
[3,]  760.0     NA
[4,]  144.4    346
[5,]  102.0    322
[6,]     NA    332

 

 

 

 

 

lapply: 결과를 리스트 형태로 반환

sapply: 벡터, 또는 행렬의 형태로 반환 (s: simplify)

tapply: 입력값을 index에 지정한 factor 값으로 분류(그룹화)하여 매개변수로 넘어온 function을 적용하는 함수다.


 

> lapply( patients.sub, mean, na.rm = TRUE )

$weight

[1] 124.72


$height

[1] 165


> sapply( patients.sub, mean, na.rm = TRUE )

weight height 

124.72 165.00 


 

 

tapply( data, Index, function .. )

이는 index에 넘어온 level에 대해 그룹화 하는데, sql의 group by와 유사한 기능을 가진다.


> patients$gender # categorical data

[1] M F M M F F

Levels: F M


> tapply(patients$weight, patients$gender, mean, na.rm=TRUE)

       F        M 

 53.0000 172.5333 

반응형
저작자표시 (새창열림)

'IT기술 관련 > 빅데이터 관련' 카테고리의 다른 글

[R 프로그래밍] 두개의 문자열 합치기  (0) 2016.04.25
[R 프로그래밍] apply, lapply, sapply, tapply, mapply, by  (0) 2016.04.23
[R 프로그래밍] [R] 몫과 나머지 (quotient and remainder)  (0) 2016.04.19
[Rstudio] Rstudio (치명적 오류: 접근 거부 - Fatal error: access denied) 해결  (3) 2016.03.14
[R 프로그래밍] R의 데이터 구조  (0) 2016.02.23
'IT기술 관련/빅데이터 관련' 카테고리의 다른 글
  • [R 프로그래밍] 두개의 문자열 합치기
  • [R 프로그래밍] apply, lapply, sapply, tapply, mapply, by
  • [R 프로그래밍] [R] 몫과 나머지 (quotient and remainder)
  • [Rstudio] Rstudio (치명적 오류: 접근 거부 - Fatal error: access denied) 해결
호레
호레
창업 / IT / 육아 / 일상 / 여행
    반응형
  • 호레
    Unique Life
    호레
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 법률
        • 기본
        • 개인정보보호법
        • 정보통신망법
        • 전자금융거래법
        • 전자금융감독규정
        • 신용정보법
        • 온라인투자연계금융업법
      • 창업
        • 외식업 관련
        • 임대업 관련
        • 유통업 관련
        • 세무 관련
        • 마케팅 관련
        • 기타 지식
        • 트렌드
        • Youtube
      • IT기술 관련
        • 모바일
        • 윈도우
        • 리눅스
        • MAC OS
        • 네트워크
        • 빅데이터 관련
        • A.I 인공지능
        • 파이썬_루비 등 언어
        • 쿠버네티스
        • 기타 기술
      • 퍼블릭 클라우드 관련
        • Azure
        • GCP
        • AWS
      • 정보보안 관련
        • QRadar
        • Splunk
        • System
        • Web
      • 기타
        • 세상 모든 정보
        • 서적
      • 게임 관련
        • 유니티
      • 부동산
      • 맛집 찾기
        • 강남역
        • 양재역
        • 판교역
        • ★★★★★
        • ★★★★
        • ★★★
        • ★★
        • ★
      • 결혼_육아 생활
        • 리얼후기
        • 일상
        • 육아
        • 사랑
        • Food
      • 영어
        • 스피킹
        • 문법
        • 팝송
        • 영화
      • K-컨텐츠
        • 드라마
        • 영화
        • 예능
      • 독서
      • 프로젝트 관련 조사
        • 시스템 구축
        • 로그 관련
        • 웹
        • APT
        • 모의 해킹
        • DB
        • 허니팟
        • 수리카타
        • 알고리즘
        • FDS
      • 기업별 구내 식당 평가
        • 한국관광공사
        • KT telecop
        • KT M&S
        • KT powertel
        • KT cs 연수원
        • 진에어
      • 대학 생활
        • 위드윈연구소
        • 진로 고민
        • 채용정보
        • 자동차
        • 주식
        • 악성코드
        • 게임 보안
      • 쉐어하우스
  • 블로그 메뉴

    • 홈
    • 게임 관련
    • IT 기술 관련
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    돈까스
    보안가이드
    이재곧죽습니다
    상호관세
    대통령
    판교
    판교맛집
    수제버거맛집
    쥬쥬랜드
    마케팅
    수제버거
    맛집
    런치
    AWS
    판교역
    점심
    유니티
    수제버거존맛
    복리후생
    무역전쟁
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
호레
[R 프로그래밍] apply 함수군 (lapply, sapply, tapply) R 프로그래밍
상단으로

티스토리툴바