R 데이터프레임 합계 - r deiteopeuleim habgye

 함수

의미 

 aggregate( ) 

 다양한 함수를 사용하여 계산 결과를 출력 

 apply( ) 

 cor( ) 

 상관함수 

 cumsum( )  

 설정된 지점까지의 누적합 

 cumprom( )  

 설정된 지점까지의 누적곱 

 diff( )  

 차이나는 부분을 찾아냄 

 length( ) 

 요소갯수를 구해서 출력함 

 max( )  

 최대값 출력 

 min( )  

 최소값 출력 

 mean( )  

 평균값 출력 

 median( )  

 가운데값 출력 

 order( )  

 각 요소의 원래 위치 

 prod( )  

 누적곱을 출력 

 range( )  

 범위값 출력 

 rank( )  

 각 요소의 순위를 출력

 rev( )  

 요소의 역순을 출력 

 sd( )  

 표준편차 출력 

 sort( )  

 정렬결과 출력 

 sum( )  

 총 합계 출력 

 summary( )  

 요약 통계량 출력  

 sweep( )  

 tapply( ) 

 벡터에서 주어진 함수연산 수행 

 var( )  

 분산값 출력 

1. 기본함수 - max, min, mean, sum, sd

2. aggregate 함수 - Dataframe 대상

- 분석할 데이터 형태가 데이터 프레임 형태일 경우 사용하는 함수

- 문법 : aggreate(계산될컬럼~기준될컬럼, 데이터, 함수)

- 기준될 컬럼이 여러개일 경우에는 + 사용 ex) aggregate(Sales~Fruit+Year,Fruits,max)

3. apply 함수로 분석하기 - Matrix 대상

- R에서 아주 많이 사용되는 함수이며 여러가지 변형도 많음

- 문법 : apply(대상,행/열,적용함수)

- 행/열 -> 1이면 행, 2이면 열기준으로 적용

- 행렬(Matrix)일 경우에 유용하게 사용됨 -> 행이나 열을 대상으로 작업하기때문에

4. lapply / sapply 함수

- apply함수의 변형

- 문법 : lapply/sapply(대상, 적용함수)

5. tapply / mapply 함수

tapply( )

- 그룹별 처리를 위한 apply함수

- 문법 : tapply(출력값, 기준컬럼, 적용함수)

mapply( )

이터프레임이 아닌 벡터나 리스트 형태의 데이터를 마치 데이터 프레임처럼 연산을 해주는 함수

- 문법 : mapply(함수, 벡터1, 벡터2, 벡터3 ...)

6. sweep 함수 - 한꺼번에 차이 구하기

- 벡터, 매트릭스, 배열, 데이터프레임으로 구성된 여러 데이터들에 동일한 기준을 적용시켜 차이나는 부분을 한꺼번에 보여주는 함수

7. length 함수 - 요소의 개수나 줄수 파악하기

- 요소의 개수나 줄수 파악하는 함수

[R]

(1)행렬에 apply 적용하기

> m23 <- matrix(c(1,2,3,4,5,6),nrow=2,byrow=T);m1  # 2 by 3 행렬만들기

         [,1] [,2] [,3]
   [1,]    1    2    3
   [2,]    4    5    6

m23 <- matrix(c(1,2,3,4,5,6),nrow=2,byrow=TRUE);m1 # 2 by 3 행렬만들기
apply(m23,1,sum)    # 6 15   행렬 m1 에 대하여 행단위로 합계
apply(m23,2,sum)    # 5 7 9  행렬 m1 에 대하여 열단위로 합계
apply(m23,1,min)     # 1 4  
apply(m23,1,max)     # 3 6  
apply(m23,1,mean)          
apply(m23,1,range)         
apply(m23,1,quantile)  

R 데이터프레임 합계 - r deiteopeuleim habgye

# 참고: colSums, rowSums 함수 
colSums(m23)                  # 5 7 9
rowSums(m23)                  # 6 15
colMeans(m23)                 # 2.5 3.5 4.5
rowMeans(m23)                 # 2 5

(2) data.frame 에 apply, sapply, lapply적용하기

gender <- c("F","F","F","M","M","M")
wei <- c( 65, 66, 69, 67, 68, 72)
hei <- c(171,172,176,173,177,178)
age <- c(23,24,38,43,40,42)
health <- data.frame(gender,wei,hei,age)

health

    gender wei hei age
  1      F  65 171  23
  2      F  66 172  24
  3      F  69 176  38 
  4      M  67 173  43
  5      M  68 177  40
  6      M  72 178  42

apply(health,2,sum)

   에러 발생 

   FUN(newX[, i], ...)에서 다음과 같은 에러가 발생했습니다:
   인자의 'type' (character)이 올바르지 않습니다


health$gender <- NULL
(2.1) apply(health,2,sum)   # 각 항목에 대하여 합계... 단 벡터 형식으로

(2.2) sapply(health,sum)  # 각 항목에 대하여 합계... 벡터 형식으로

(2.3) lapply(health,sum)  # 각 항목에 대하여 합계... 단 리스트 형식으로

$wei
[1] 407

$hei
[1] 1047

$age
[1] 210

(2.4) 리스트를 벡터 형식으로 - unlist

unlist(lapply(health,sum))  # 리스트를 벡터로 변환

> unlist(lapply(health,sum)) 
wei  hei  age 
 407 1047  210 

(3) 남녀별 wei의 합계

(3.1) aggregate 이용 gender <- c("F","F","F","M","M","M") wei <- c( 65, 66, 69, 67, 68, 72) hei <- c(171,172,176,173,177,178) age <- c(23,24,38,43,40,42) health <- data.frame(gender,wei,hei,age) health aggregate(wei~gender,data=health,sum) # aggregate를 이용하여 남녀(gendr)별 몸무게(wei)의 합계를 구함aggregate(wei~gender,mean,data=health) 

R 데이터프레임 합계 - r deiteopeuleim habgye

(3.2) tapply 이용

tapply(health$wei,health$gender,sum)

> tapply(health$wei,health$gender,sum)

   F   M 
200 207

'R & SAS 300제' 카테고리의 다른 글

상관분석 - SAS, R, Python  (0) 2021.11.20
t검정-두 그룹간의 평균치 차이 검정 - SAS, R, Python  (0) 2021.11.18
표본추출하기 - sample 함수  (0) 2021.11.17
데이터를 정렬하기 - SAS, R - sort, order, decreasing  (0) 2021.11.16
미싱(Missing) 처리하기 - is.na( ), sum(is.na( )), na.rm, na.omit  (0) 2021.11.16