https://warm-uk.tistory.com/64?category=810499 Show [R, 정리] R의 특징과 장점, 사용이유 R은 제가 가장 자주, 잘 사용하는 툴이자 언어에요. 처음 데이터 공부를 R로 시작했기 때문에 그런 것일지도 모릅니다. Python을 자주 사용하면서 익히고 싶지만.. 아직 스몰데이터만 만져본 저에 warm-uk.tistory.com => 먼저 R에 대해서 이해하기 목차1. 기본 데이터 타입 2. 뭉탱이 데이터 타입 - 벡터(vector) 3. 뭉탱이 데이터 타입 - 행렬(matrix) 4. 뭉탱이 데이터 타입 - 배열(arrays) 5. 뭉탱이 데이터 타입 - 리스트(list) 6. 뭉탱이 데이터 타입 - 데이터프레임(DataFrames) 7. 데이터 타입 변환 8. 데이터 타입 기본 함수 요약 1. 기본 데이터 타입
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)
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 <-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. 데이터 타입 기본 함수 요약 |