7 min to read
R-Studio Factor의 사용.
R-Studio의 Factor를 사용한 예제
R-Studio 의 Factor
차트를 만들때 필요한 Factor
파일 소스
# 메모장 factor_text.txt를 하나 만들어서 밑 내용을 넣고 저장하자.
# 메모장 factor_text.csv로 저장해도 무방하다.
# setwd("경로") 로 경로를 지정해 불러오든가.
# 아니면 편하게 R작업공간에 넣어버리자.
# 현재 작업공간은 getwd()로 참고 가능하다.
# no,name,blood,sex,location
# 1,서진수,O,남,서울
# 2,홍길동,A,남,부산
# 3,유관순,O,여,부산
# 4,전우치,B,남,전남
# 5,강감찬,AB,남,강원
# 6,신사임당,A,여,강원
# 7,퇴계이황,B,남,충청
# 8,율곡이이,O,남,전북
# 9,근초고대왕,B,남,제주
# 10,뺑덕어멈,B,여,서울
함수 예제
# install.packages([package name]) 패키지 설치
# 설치를 했었다면 메모리 로딩만 하면된다.
install.packages("ggplot2")
# 패키지를 메모리에 로딩
library(ggplot2)
# CSV : comma separate value를 저장하고 있는 텍스트 파일
# 엑셀에서 접근 가능
# myTxt <- read.csv("factor_test.txt")
# myTxt
# no name blood sex location
# 1 1 서진수 O 남 서울
# 2 2 홍길동 A 남 부산
# 3 3 유관순 O 여 부산
# 4 4 전우치 B 남 전남
# 5 5 강감찬 AB 남 강원
# 6 6 신사임당 A 여 강원
# 7 7 퇴계이황 B 남 충청
# 8 8 율곡이이 O 남 전북
# 9 9 근초고대왕 B 남 제주
# 10 10 뺑덕어멈 B 여 서울
# Factor 테스트
getwd()
# [1] "F:/Git_BigData/bigdata/S20191001"
# str : Structure
# 10 obs. of 5 variavbles 가 나오는데 10행 5열 이다.
str(myTxt)
# 'data.frame': 10 obs. of 5 variables:
# $ no : int 1 2 3 4 5 6 7 8 9 10
# $ name : Factor w/ 10 levels "강감찬","근초고대왕",..: 4 10 6 8 1 5 9 7 2 3
# $ blood : Factor w/ 4 levels "A","AB","B","O": 4 1 4 3 2 1 3 4 3 3
# $ sex : Factor w/ 2 levels "남","여": 1 1 2 1 1 2 1 1 1 2
# $ location: Factor w/ 7 levels "강원","부산",..: 3 2 2 4 1 1 7 5 6 3
# levels : 취할 수 있는 값
# labels : 식별할 수 있도록 임의로 지정한 값
# A, B, O, AB 이 4가지 패턴이 혈액형의 levels 가 된다.
# 이걸 한글로 에이형 비형 이런식으로 표현하면 4가지 levels 의 labels 가 된다.
# 해석해 보면 10행 5열 이고 이름 튜플은 팩터형태이고 10레벨을 기준으로 분류한다.
# blood 튜플은 팩터형태 이고 4가지 레벨을 가지고 있고 각각 4레벨을 기준으로 분류한다.
# 팩터 = 카테고리
# 요약정보
summary(myTxt)
# no name blood sex location
# Min. : 1.00 강감찬 :1 A :2 남:7 강원:2
# 1st Qu.: 3.25 근초고대왕:1 AB:1 여:3 부산:2
# Median : 5.50 뺑덕어멈 :1 B :4 서울:2
# Mean : 5.50 서진수 :1 O :3 전남:1
# 3rd Qu.: 7.75 신사임당 :1 전북:1
# Max. :10.00 유관순 :1 제주:1
# (Other) :4 충청:1
# 위는 summary() 의 실행 형태이다.
# no 컬럼은 4분위수 에 의거하여 분류한다.
# Min 최솟값, Max 최댓값, median 중간값, mean 평균값
# 기존 팩터를 이용하여 파생 컬럼 만드는법
# 객체$컬럼 : 해당 변수에 접근시 $를 이용한다.
# mytxt객체에서 blood컬럼을 뽑아서 blood2 를 만들어서 객체에 새로운 컬럼을 추가함.
myTxt$blood2 <- factor( myTxt$blood, levels=c('A', 'B', 'O', 'AB'), labels=c('에이', '비', '오', '에이비') )
# 출력
myTxt
# no name blood sex location blood2
# 1 1 서진수 O 남 서울 오
# 2 2 홍길동 A 남 부산 에이
# 3 3 유관순 O 여 부산 오
# 4 4 전우치 B 남 전남 비
# 5 5 강감찬 AB 남 강원 에이비
# 6 6 신사임당 A 여 강원 에이
# 7 7 퇴계이황 B 남 충청 비
# 8 8 율곡이이 O 남 전북 오
# 9 9 근초고대왕 B 남 제주 비
# 10 10 뺑덕어멈 B 여 서울 비
# sex컬럼을 이용하여 male, female으로 시뉵 컬럼 sex2를 만들어 보세요.
# factor함수로 만들고자하는 컬럼을 객체 에서 불러와서 labels 를 붙혀서 다시 객체에 추가한다.
myTxt$sex2 <- factor( myTxt$sex, levels=c('남', '여'), labels=c('male', 'female') )
# 출력
myTxt
# no name blood sex location blood2 sex2
# 1 1 서진수 O 남 서울 오 male
# 2 2 홍길동 A 남 부산 에이 male
# 3 3 유관순 O 여 부산 오 female
# 4 4 전우치 B 남 전남 비 male
# 5 5 강감찬 AB 남 강원 에이비 male
# 6 6 신사임당 A 여 강원 에이 female
# 7 7 퇴계이황 B 남 충청 비 male
# 8 8 율곡이이 O 남 전북 오 male
# 9 9 근초고대왕 B 남 제주 비 male
# 10 10 뺑덕어멈 B 여 서울 비 female
# 벡터 를 그래프로 시각화 하기
human <- c('남자', '여자', '여자', '남자', '남자')
# 타입 조회
mode(human)
# [1] "character"
class(human)
# [1] "character"
# 형변환 nhuman 에다가 human 객체를 팩터로 캐스팅
nhuman <- as.factor(human)
mode(nhuman) # 바뀐 것 확인하기위해 조회
# [1] "numeric"
class(nhuman)
# [1] "factor"
# 시각화
plot(nhuman) # 차트 만들기
table(nhuman) # 테이블 만들기
nhuman
# 남자 여자
# 3 2
qplot(nhuman) # 좀더 시각적인 차트(유저 라이브러리 사용)
# factor 인수중 ordered = T 이면 사용자가 지정한 levels = c(인수) 순서대로 정렬시킴
ohuman <- factor(human, levels=c('여자', '남자'), ordered=T)
qplot(ohuman) # 그래프 그림
# 강호동 유재석 김구라 를 유재석 김구라 강호동 순으로 차트 그리기기
# 기준이 되는 소스를 먼저 벡터화 시키고
name <- c("강호동", "강호동", "강호동", "유재석", "유재석", "김구라", "김구라", "김구라", "김구라")
# 카테고리화 시키는 중
oname <- factor(name, levels=c("유재석", "김구라", "강호동"), ordered = T)
# 유저 라이브러리 를 이용해 차트를 좀더 이쁘게 그림
qplot(oname)
Comments