반응형
R 통계분석 Mean, Median, Mode
R을 통한 통계분석은 많은 in-built 함수들을 통해 이루어진다. 이러한 함수들은 대부분 R base package에 속해있고, vector들을 다른 argument들과 함께 input으로 받아 결과를 출력해준다. 이번 포스팅에 다룰 내용은 mean, median, mode 함수이다.
1. Mean
문법
mean(x, trim = 0, na.rm = FALSE, ...)
- x : input vector
- trim : 정렬된 vector에서 양 극단에서의 일정 부분을 뺄 때 사용함
- na.rm : missing value를 제거하고 계산할 때 사용
예제
# Create a vector. x <- c(12,7,3,4.2,18,2,54,-21,8,-5) # Find Mean. result.mean <- mean(x) print(result.mean)
[1] 8.22
Trim Option 사용하기
# Create a vector. x <- c(12,7,3,4.2,18,2,54,-21,8,-5) # Find Mean. result.mean <- mean(x,trim = 0.3) print(result.mean)
Trim을 사용하면 양 극단에서 일정부분을 빼고 계산한다. 0.3일 경우 양 끝에서 전체 데이터의 0.3 만큼을 제외한다. 이 경우에 전체데이터가 10개이므로 양 끝에서 3개씩을 뺀다. 즉 정렬된 벡터 (−21, −5, 2, 3, 4.2, 7, 8, 12, 18, 54) 에서 (−21,−5,2) (12,18,54) 을 뺀 평균을 계산한다.
NA 옵션 적용하기
# Create a vector. x <- c(12,7,3,4.2,18,2,54,-21,8,-5,NA) # Find mean. result.mean <- mean(x) print(result.mean) # Find mean dropping NA values. result.mean <- mean(x,na.rm = TRUE) print(result.mean)
[1] NA [1] 8.22
원래는 오류가 날 것을 na.rm=TRUE 를 통해 NA 값을 제거하고 평균을 구할 수 있다.
2. Median
Median(중위수)는 전체 데이터에서 중앙에 있는 값을 뜻한다. Median() 함수는 이 값을 구하기 위해 사용된다.
문법
median(x, na.rm = FALSE)
예
# Create the vector. x <- c(12,7,3,4.2,18,2,54,-21,8,-5) # Find the median. median.result <- median(x) print(median.result)
3. Mode
Mode(최빈값)은 데이터에서 가장 많이 등장한 값이다. 안타깝게도 R에는 Mode를 구하는 in-built function이 없다. 직접 정의한 getmode() 함수를 통해 Mode를 구해보자.
# Create the function. getmode <- function(v) { uniqv <- unique(v) uniqv[which.max(tabulate(match(v, uniqv)))] } # Create the vector with numbers. v <- c(2,1,2,3,1,2,3,4,1,5,5,3,2,3) # Calculate the mode using the user function. result <- getmode(v) print(result) # Create the vector with characters. charv <- c("o","it","the","it","it") # Calculate the mode using the user function. result <- getmode(charv) print(result)
[1] 2 [1] "it"
이렇게 정의된 getmode 함수는 위처럼 문자열에도 적용할 수 있다.
아래 튜토리얼을 참고한 포스팅입니다.
반응형
'Tools > R' 카테고리의 다른 글
R - 단순회귀분석 (0) | 2017.05.21 |
---|---|
R - (10) 리스트(List) (0) | 2017.03.04 |
R - (9) 벡터 (0) | 2017.02.23 |
R - (8) 문자열 (Strings) (0) | 2017.02.23 |
R을 통한 2017년 대선 주자들 페이스북 분석 (5) | 2017.02.21 |