반응형
함수이름 | 예시 | 역할 |
apply | apply(x,1,mean) | - 행렬, 배열, 데이터프레임에 사용 - 행방향 또는 열방향으로 함수 일괄 적용 |
lapply | lapply(x,mean) | - 리스트에 적용 - 리스트 형태로 결과 반환 - 행렬, 벡터에도 적용가능한데 의미는 없음 |
sapply | sapply(x,mean) | - 리스트에 적용 - 행렬 형태로 결과 반환 - 행렬, 벡터에도 적용가능한데 의미는 없음 |
tapply | tapply(vec,fac,mean) | - 입력된 벡터를, 요인 수준에 따라 함수 적용 |
mapply | mapply(rep,times=4,li) | - 사용할 함수의 input이 여러개인 경우 사용 - 나머지는 sapply 와 동일(리스트에적용) - 행렬, 벡터에도 적용가능한데 의미는 없음 |
1. apply 함수
행렬을 하나 정의합시다.
> m=matrix(1:12,3)
> m
[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12
apply 함수를 적용합시다. 1은 행방향(좌->우), 2는 열방향(상->하) 입니다. 함수는 평균을 구하는 함수를 입력하였습니다.
> apply(m,1,mean)
[1] 5.5 6.5 7.5
> apply(m,2,mean)
[1] 2 5 8 11
2. lapply 함수
리스트를 하나 정의합시다.
> li=list(1:3,4:6,7:9)
> li
[[1]]
[1] 1 2 3
[[2]]
[1] 4 5 6
[[3]]
[1] 7 8 9
lapply 함수를 적용합시다. 함수는 평균을 구하는 함수를 입력하였습니다.
> lapply(li,mean)
[[1]]
[1] 2
[[2]]
[1] 5
[[3]]
[1] 8
3. sapply 함수
리스트를 하나 정의합시다.
> li=list(1:3,4:6,7:9)
> li
[[1]]
[1] 1 2 3
[[2]]
[1] 4 5 6
[[3]]
[1] 7 8 9
sapply 함수를 적용합시다. 함수는 평균을 구하는 함수를 입력하였습니다.
> sapply(li,mean)
[1] 2 5 8
4. tapply 함수
벡터 하나와 요인 하나를 정의합시다.
> v=1:10
> v
[1] 1 2 3 4 5 6 7 8 9 10
> f=factor(c(1,1,1,1,2,2,2,2,2,2))
> f
[1] 1 1 1 1 2 2 2 2 2 2
Levels: 1 2
tapply 함수를 적용합시다. 함수는 평균을 구하는 함수를 입력하였습니다.
> tapply(v,f,mean)
1 2
2.5 7.5
설명을 추가하면, 요인의 레벨 1에 해당되는 1,2,3,4의 평균이 구해지고, 레벨 2에 해당되는 4,5,6,7,8,9,10 의 평균이 구해진 것입니다.
5. mapply 함수
리스트를 하나 정의합시다.
> li=list(1:3,4:6,7:9)
> li
[[1]]
[1] 1 2 3
[[2]]
[1] 4 5 6
[[3]]
[1] 7 8 9
mapply 함수를 적용합시다. 함수가 먼저 오고, 함수의 설정값, 리스트 순으로 입력합니다.
> mapply(rep,times=4,li)
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
[4,] 1 4 7
[5,] 2 5 8
[6,] 3 6 9
[7,] 1 4 7
[8,] 2 5 8
[9,] 3 6 9
[10,] 1 4 7
[11,] 2 5 8
[12,] 3 6 9
반응형
'9.유용한 함수모음 > apply 함수' 카테고리의 다른 글
[R] NA가 포함된 데이터의 평균을 apply 함수로 구하기 (0) | 2021.05.28 |
---|---|
[R] apply 함수를 이용하여 이항 데이터로 변형하기 (0) | 2020.09.28 |
[R기초] apply 함수 (행, 열, 또는 각 원소에 함수를 일괄적용) (0) | 2020.09.23 |
댓글