R은 데이터 분석을 위한 언어로서 오픈소스 타입으로 다양한 패키지를 이용하여 여러 솔루션을 도출해낼수 있다.
그 전 R에서 사용되는 데이터타입에 대한 간단한 정리를 통해 앞으로 진행할 분석에 활용할 예정이다.
R의 데이터 타입은 다음과 같이 정리할 수 있다
백터: R의 최소단위의 데이터 타입으로서, 문자형 실수형 논리형 명목형의 네 가지 타입으로 나눠진다
팩터: 명목형 범주형을 위한 일차원의 벡터 타입
리스트: 다양한 데이터 타입이 조합된 일차원의 데이터 타입
Data Frame: 다양한 데이터 타입들이 조합된 이차원의 배열
매트릭스: (주로)수치형 데이터를 위한 이차원 배열
1 2 3 4 | # Scala 이름<-c("나래") 섭외인기<-c("75.8") 코메디언<-c(TRUE) | cs |
1 2 3 4 | #vector 이름<-c("나래","지코","혁수") 섭외인기<-c(75.8,98.2,33.5) 코메디언<-c(TRUE,FALSE,TRUE) | cs |
1 | is(코메디언) # 타입 확인 | cs |
1 2 3 4 5 6 | > #factor 순서 > 성별<-factor(c("여","남","남"),ordered = 1) > 성별<-factor(c("여","남","남"),ordered=T) > 성별 [1] 여 남 남 Levels: 남 < 여 | cs |
1 2 3 | #facotr 혈액형 혈액형 = factor(c("B","O","A"), levels=c("A","B","O")) | cs |
귀찮다면 순서를 아무렇게 쓰고 마지막 levels 를 이용하여 다시 순서를 정해주면 된다.
위 예시대로면 순서는 A>B>O 순으로 우선순위가 부여된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #list 박나래<-list(fullname=이름[1], 섭외인기 = 섭외인기[1], 코메디언 = 코메디언[1], 성별=성별[1], 혈액형 = 혈액형[1]) > 박나래[5] $혈액형 [1] B Levels: A B O > 박나래$성 [1] 여 Levels: 남 < 여 박나래[c("성별", "섭외인기")] $성별 [1] 여 Levels: 남 < 여 $섭외인기 [1] 75.8 | cs |
다음은 리스트에 관한 설명이다. 아까 이야기했던 것처럼 리스트는 여러 데이터 타입의 변수를 담을 수 있는 일차원의 공간이다.
위 예시를 바탕으로 설명하면 이름의 "첫번째" 벡터를 fullname에 담아 리스트에 저장하고, 섭외인기의 "첫번째" 변수를 담고 그 이름을 섭외인기로 하여 리스트에 저장하고... 순서로 진행된다.
아래 예시는 "박나래" 리스트의 다섯번째 항목을 출력하라는 것이다 (박나래[5]). 이 상황에서는 기존에 존재하던 혈액형 벡터의 첫번째 값인 B가 '혈액형'이라는 이름으로 리스트에 저장되었는데, 이 저장된 순서가 다섯번째니 혈액형이 출력이 되는 것이다.
한편 리스트에 속한 변수 이름으로도 호출할 수 있다. 박나래$성별, 혹은 다수의 변수를 호출할 경우 박나래[c("호출할변수1","호출할변수2)]꼴로도 진행 가능하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #data frame 사람들 <- data.frame(이름,섭외인기,코메디언,성별,혈액형) 사람들 //##결과 이름 섭외인기 코메디언 성별 혈액형 1 나래 75.8 TRUE 여 B 2 지코 98.2 FALSE 남 O 3 혁수 33.5 TRUE 남 A View(사람들) // 새 창으로 출력 >사람들[2,4] [1] 남 Levels: 남 < 여 > 사람들[1,] 이름 섭외인기 코메디언 성별 혈액형 1 나래 75.8 TRUE 여 B > 사람들[1] 이름 1 나래 2 지코 3 혁수 | cs |
다음은 데이터 프레임이다. 데이터 프레임은 다양한 타입의 변수를 모두 포함할 수 있는 이차원의 공간이다.
위에서 선언한 이름, 섭외인기, 코메디언, 성별, 혈액형 변수를 한 개의 데이터프레임화 하여 "사람들"에 저장한다. 그 결과는 위와 같으며 만약 View(사람들) 을 할경우 새로운 창으로 볼 수 있다.
데이터 타입의 레코드는 * 데이터프레임이름[원하는행,원하는열] * 꼴로 검색할 수 있다.
사람들[2,4]가 그 예시이다. 한편 사람들[1,]꼴로 행이나 열에 대한 부분을 비워두게 되면, 선택한 행(열)에 해당하는 모든 정보를 저장하겠다는 것이다.
'데이터분석 > with R' 카테고리의 다른 글
[R] R로 구현하는 KNN(게으른 학습) 알고리즘 - (2) (0) | 2017.12.16 |
---|---|
[R] R로 구현하는 KNN(게으른 학습) 알고리즘 - (1) (0) | 2017.12.16 |
[R] 부스팅(앙상블)을 활용한 의사결정나무 정확도 향상 (4) | 2017.11.19 |
[R] R로 구현하는 의사결정나무(Decision Tree) (0) | 2017.11.12 |
[R] csv파일 입출력 및 기초통계 확인하기 (0) | 2017.11.04 |