일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 30 | 31 |
- 빅데이터
- NLP
- AI
- 데이터시각화
- pandas
- 기계학습
- 머신러닝
- 딥러닝
- 그래프시각화
- 자연어처리
- CNN
- word2vec
- 데이터분석
- SQL
- 빅데이터처리
- Python
- Hadoop
- 주가예측
- ggplot
- r
- 하둡
- R그래프
- 데이터
- HIVE
- 데이터처리
- Deeplearning
- lstm
- R프로그래밍
- R시각화
- 그래프
- Today
- Total
욱이의 냉철한 공부
[R, 정리] 데이터 타입 이해하기 본문
https://warm-uk.tistory.com/64?category=810499
=> 먼저 R에 대해서 이해하기
목차
1. 기본 데이터 타입
2. 뭉탱이 데이터 타입 - 벡터(vector)
3. 뭉탱이 데이터 타입 - 행렬(matrix)
4. 뭉탱이 데이터 타입 - 배열(arrays)
5. 뭉탱이 데이터 타입 - 리스트(list)
6. 뭉탱이 데이터 타입 - 데이터프레임(DataFrames)
7. 데이터 타입 변환
8. 데이터 타입 기본 함수 요약
1. 기본 데이터 타입
Type | Ex |
numeric | 1,2,3,4,5 1,2341, -4.523 |
character | "uk", "genius", "175" |
logical | TRUE, FALSE |
factor | suncheon seoul seoul suwon Levels : suncheon seoul suwon |
1) 숫자형 numeric
- 숫자로 이루어진 데이터 타입
- 수학적 연산이 가능한 데이터 타입
- 문자가 데이터 집합에 있으면 전체가 문자형으로 변경된다.
2) 문자형 character
- " " 또는 '' 로 표시한다.
- " " 내에는 임의의 어떤 값이든 들어갈 수 있다.
- 문자열은 연산이 불가능하다.
3) 논리형 logical
- Binary 값을 갖는 데이터 타입
- TRUE는 참을 의미하고, FALSE는 거짓을 의미한다.
- FALSE는 0이고 0 이외는 TRUE이다.
4) 팩터 factor
- 범주형 데이터를 표현하기 위한 데이터 타입
- factor()로 팩터 생성한다.
5) 뭉탱이 데이터 타입
- Vactor
- Matrix
- Array
- List
- DataFrame
2. 뭉탱이 데이터 타입 - 벡터(vector)
- 벡터는 한가지 데이터 타입만을 저장할 수 있는 1차원 배열
- 숫자만 저장하는 벡터, 문자만 저장하는 배열 존재한다.
- c()를 사용하여 생성한다. c는 combine을 의미한다.
- 벡터 생성 및 추출
vec<-c(1,2,3,4,5) : vec라는 변수에 데이터 저장
vec[2] : 2번째 요소 값만 보여준다.
vec[-2] : -붙으면 2번째만 빼고 보여준다.
vec[-1:-3] : 1번에서 3번 요소까지 뺀 나머지 값들만 보여준다.
vec[2:4] : 2번에서 4번 요소까지의 값들으 보여준다.
vec[2]<-6 : 2번째 요소값을 6으로 변경한다.
vec<-c(vec,7) : 7이라는 값을 새롭게 추가한다.
- 벡터함수들
x <- c(1,2,3,4,5)
mean(x) : 평균
order(x) : 정렬
rev(x) : 내림차순 정렬
range(x) : 최소값 최대값으로 범위 출력
sd(x) : 표준편차
sort(x) : 정렬
sort(x,decreasing=TRUE) : 내림차순 정렬
length(x) : 길이 출력
- 벡터형 자료의 일부를 바꾸는 법
x <- c(1,4,6,8,9)
y <- replace(x, c(2,4), c(32,24) ) : 2번째 4번째를 요소값을 32, 24로 바꾼다.
w <- append(x,y) : x와 y를 합친다.
z <- append(x,y, after=2) : x의 2번째 요소값 뒤에서부터 y의 요소값들을 투입한다.
- 벡터끼리 연산 자유롭다.
c(1,2) + c(4,5)
c(1,2,3) + 1
- 벡터형에 함수를 이용하여 데이터를 생성 할 수 있다.
vector <- -5:5 : -5부터 5까지의 요소값들이 vector변수에 저장된다.
vector <- seq( from=-5, to=5, by=1) : -5부터 5까지의 요소값들이 vector변수에 저장된다.
vector <- seq(10) : 1부터 10까지의 요소값들이 vector변수에 저장된다.
- 벡터형에 집합 연산을 적용한다
x <- c(1,2,3)
y <- c(4,2,8)
union(x,y) : x와y를 합친다.
intersect(x,y) : x에 있는 요소값들에서 y의 요소값들을과 겹치는 값들을 출력한다.
setdiff(x,y) : x에 있는 요소값들에서 y의 요소값들을 뺀다.
- 벡터형에 문자 데이터 조작하는 기능
x <- rep( c("a","b","c"), times=4) : a b c를 반복해서 4번 저장한다.
unique(x) : x는 a, b, c, a, b, c, a, b, c, a, b, c 이렇게 12개의 요소값이 저장되어 있지만 유일값 a, b, c만 출력한다.
match(x, c("a")) : x에서 a값만 해당하는 요소값을 찾는다.
substring("abcdefghijklmn", 2,5) : 2번째에서 5번째까지의 문자열을 출력한다. 즉 bcde가 된다.
3. 뭉탱이 데이터 타입 - 행렬(matrix)
- 행렬은 한가지 데이터 타입만을 저장할 수 있는 2차원 데이터 배열이다.
- matrix()를 사용하여 생성한다.
- 생성 시 미리 크기를 지정해야 한다. (nrow=, ncol=)
- 행렬 생성, 기본적으로 열이 기준이다.
mat1 <- matrix(c(1,2,3,4))
mat2 <- matrix(c(1,2,3,4),nrow=2)
mat3 <- matrix(c(1,2,3,4),nrow=2,byrow=T) : byrow=T로 인하여 행부터 채워나간다.
- 행렬 출력
mat3[ ,1] : 모든 행의 1열 값 출력한다.
mat3[1,] : 1행의 모든 열 값을 출력한다.
mat3[1,1] : 1행 1열의 값을 출력한다 .
- 벡터를 하나의 행렬로 만든다.
vec1 <- c(1,2,3)
vec2 <- c(4,5,6)
vec3 <- c(7,8,9)
mat1 <- rbind(vec1,vec2,vec3) : 행 방향으로 합친다
mat2 <- cbind(vec1,vec2,vec3) : 열 방향으로 합친다
- 행렬 이름 만들기.
colnames( mat1) <- c("A","B","C")
- 행렬 데이터 추출
x <- matrix( c(1,2,3,4,5,6), nrow=2)
colnames(x) <- c("First","Second","Third")
x[1,"First"] : 열 이름을 추출한데 사용 할 수 있다.
x[1,2]
4. 뭉탱이 데이터 타입 - 배열(arrays)
- 3차원 이상의 형태로 데이터를 모아 놓을 수 있다.
- 한 가지 데이터 타입만을 저장할 수 있다.
- array()함수를 사용하여 생성한다.
- 배열 생성
x <- array(1:36,c(4,3,3)
5. 뭉탱이 데이터 타입 - 리스트(list)
- 서로 다른 데이터를 인위적으로 묶어 놓았다.
- 구성요소로 어떤 데이터 형태도 가질 수 있는 1차원 데이터형이다
- 리스트 안에 벡터, 혹은 다른 리스트, 데이터프레임 전부 들어올 수 있다.
- 이 리스트가 JSON을 R에서 처리하는데 도와줄 것이다.
- 리스트 생성
list1 <- list(name='donguk' , info=c(175,70), region="suwon", smoking=FALSE)
"donguk" | c(175,70) | "suwon" | FALSE |
1 : name 2 : info 3 : region 4 : smoking
- 리스트 출력
name <- 이 부분을 Key 부분이라고 한다.
"donguk" <-- 이 부분을 Value 부분이라고 합니다.
list1$name : name의 value를 출력한다.
list1[1:2] : 1번째 요소값부터 2번째 요소값까지 출력한다.
- 리스트 추가
list1$birth <- '1992-12-20'
- 하나의 key 에 두개의 value 동시에 넣기, 즉 벡터 집어 넣기
list1$region <- c("suwon", "suncheon")
- 특정 값 삭제하기
list1$birth <- NULL
6. 뭉탱이 데이터 타입 - 데이터프레임(DataFrames)
- 구성요소로 어떤 데이터 형태로든 가질 수 있는 2차원 데이터 타입이다.
- Column마드 데이터 타입이 다를 수 있다. (숫자, 문자, factor 다 다를 수 있다.)
- 테이블이다.
- data.frame()으로 생성한다.
- 데이터프레임 생성
ID | NAME | HEIGHT | WEIGHT |
1 | donguk | 175 | 70 |
2 | eunsub | 175 | 64 |
3 | hansol | 180 | 80 |
4 | minyoung | 178 | 68 |
id <-c(1,2,3,4)
name <-c("donguk","eunsub","hansol","minyoung")
height <-c(175,175,180,178)
weight <- c(70,64,80,68)
friend <- data.frame(ID=id,NAME=name,HEIGHT=height,WEIGHT=weight)
- 데이터프레임 출력
friend : 전체 출력한다.
friend$HEIGHT : HEIGHT 만 출력한다. 벡터로 출력
friend[1,3] : 1번째 행, 3번째 열 값을 출력한다.
friend[1,] : 1번째 행의 모든 값을 출력한다. (, 이후에 비어있으면 모든 열 값을 뜻한다.)
friend[,3] : 3번째 열의 모든 값을 출력한다.
- 데이터프레임 원하는 조건만 출력
friend[friend$HEIGHT<=175,] : HEIGHT 값이 175 이하인 모든 행을 출력한다.
friend[friend$HEIGHT<=175,4] : HEIGHT 값이 175 이하이며 4번째 열 값을 출력한다.
friend[friend$HEIGHT<=175,c(3,4)] : HEIGHT 값이 175 이하이며 3번째, 4번째 열 값을 출력한다.
friend[friend$WEIGHT==70,] : WEIGHT 값이 70인 모든 행을 출력한다.
friend[friend$NAME=='donguk',] : NAME 값이 'donguk'인 모든 행을 출력한다.
- 데이터프레임 subset( )으로 원하는 조건만 조회
subset(friend,HEIGHT<=175) : HEIGHT 값이 175 이하인 모든 행을 출력한다.
subset(friend,WEIGHT==70) : WEIGHT 값이 70인 모든 행을 출력한다.
subset(friend,NAME=='donguk') : NAME 값이 'donguk'인 모든 행을 출력한다.
- 데이터프레임 값 변경
friend[1,3] <- NA : 1번째 행, 3번째 열 값을 null로 변경한다.
friend[friend$HEIGHT==175,4] <- 176 : HEIGHT 값이 175 이하이며 4번째 열 값을 176으로 변경한다.
friend[friend$NAME=='donguk',] <- NA : NAME 값이 'donguk'인 모든 행 값을 null로 변경한다.
- 데이터 프레임 합치기 : rbind( ) , cbind( )
id <- c(5,6)
name <- c("heagun","daeyoung")
hegiht <- c(177, 182)
weight <- c(65,75)
friend2 <- data.frame(ID=id,NAME=name,HEIGHT=height,WEIGHT=weight)
newfriend <- rbind(friend,friend2) : 행방향으로 합친다.
region <- c("suwon","soeul","suwon","suncheon")
newfrined <- cbind(friend,region) : 열방향으로 합친다. ,열 개수만 맞으면 벡터도 합칠 수 있다.
7. 데이터 타입 변환
- 한 데이터타입으로 통일되어야 하는 집합에 있다면 대빵은 문자형이다.
벡터를 예로 들어보자. 벡터 안에서는 전부 한 데이터타입으로 통일 되어야 한다.
- c(5, "two") : 전부 문자형으로 변환된다.
- c(TRUE, "a") : 전부 문자형으로 변환된다.
- c(1, "TRUE") : 전부 문자형으로 변환된다.
- TRUE + 5의 결과값은 TRUE가 1로 변환되어 6이 되어진다.
8. 데이터 타입 기본 함수 요약
'데이터분석 > R' 카테고리의 다른 글
[R, 시각화] 기본 그래프 그리기(산점도,꺽은선) - plot() (1) | 2021.06.28 |
---|---|
[R, 정리] 파일(csv, txt) 가져오기 (0) | 2021.06.22 |
[R, 정리] 기본 명령어 이해하기 (0) | 2021.06.22 |
[R, 전처리, 패키지] sqldf 패키지 이용하여 R에서 SQL을 사용하자 (0) | 2021.06.22 |
[R, 데이터 실생활 응용] R로 카카오톡 활동량 분석하여 시각화. (0) | 2021.06.22 |