R - Data Type
- R 자료형/자료구조 - 판별과 변환 ◎ 자료형과 자료구조 알아보기 - mode(x) : 자료형(클래스) => 숫자형, 문자형, 논리형 ... - typeof(x) : 자료형 => 정수형, 실수형, 문자형, 논리형 ... - class(x) : 자료구조 => Array, List, Table ... > x = matrix(1:9,3) > x [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 > mode(x) [1] "numeric" > typeof(x) [1] "integer" > class(x) [1] "matrix" "array" ◎ 데이터 유형 판별 is.numeric(x) 객체 x가 수치형인가 is.integer(x) 객체 x가 정수형인가 is.double(x) 객체 x가 실수형인가 is.compl..
- R 데이터프레임 DataFrame - 인덱싱/관련함수 ◎ 데이터프레임 인덱싱(indexing) > number = 1:10 > score = c(90,85,83,75,63,55,97,80,77,59) > gender = c('M','F','M','M','F','M','M','F','F','M') > student = data.frame(number, score, gender) > print(student) number score gender 1 1 90 M 2 2 85 F 3 3 83 M 4 4 75 M 5 5 63 F 6 6 55 M 7 7 97 M 8 8 80 F 9 9 77 F 10 10 59 M > cat(student) Error in cat(student) : 타입 'list'인 인자 1는 'cat'에 의하여 다루어 질 수 없습니다 벡터 3개를 ..
- R 데이터프레임 DataFrame - 생성과 저장 text/csv/excel파일 데이터 프레임은 데이터를 엑셀(Excel)처럼 표의 형태로 저장하는 자료구조이다. 칼럼(열) 단위로 서로 다른 자료형을 갖는 데이터를 저장할 수 있고, R에서 가장 중요한 데이터 타입이다. ◎ 데이터프레임 생성 data.frame() data.frame( value, row.names=NULL, check.rows=FALSE, check.names=TRUE, fix.empty.names=TRUE, stringsAsFactors=default.stringsAsFactors() ) row.names 행 이름 check.rows 행 이름의 길이와 일관성을 검사 check.names 변수 이름이 구문적으로 유효한지 검사 fix.empty.names 이름이 없을 경우 자동으로 이름을 생성 stringsAsFact..
- R 배열 Array - 생성/인덱싱 배열(array)은 동일한 자료형의 데이터를 저장하는 다차원의 자료구조이다. 벡터(vector)은 1차원의 배열구조, 행렬(matrix)도 2차원의 배열구조라고 할 수 있다. ◎ 배열 생성 array() array(data = NA, dim = length(data), dimnames = NULL) dim 배열의 차원, 값을 지정하지 않으면 1차원의 배열을 생성 dimnames 각 차원의 이름을 지정 > arr1 = array(1:12, c(2,3,2), dimnames=list(c('a','b'),c('c','d','e'),c('f','g'))) > print(arr1) , , f c d e a 1 3 5 b 2 4 6 , , g c d e a 7 9 11 b 8 10 12 > cat(arr1) 1 2..
- R 행렬 Matrix - 생성/연산/인덱싱 행렬은 행(row)과 열(column)로 이루어진 벡터와 같이 동일한 자료형만 저장할 수 있는 2차원 배열구조이다. ◎ 행렬 생성 matrix() matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE, dimnames = NULL) nrow 행의 수 ncol 열의 수 byrow TRUE는 행우선, FALSE는 열우선으로 데이터를 채운다. dimnames 행과 열에 이름을 부여 > mat1 = matrix(1:6, nrow=2, ncol=3); mat1 [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > mat2 = matrix(1:6, c(2,3)) > print(mat2) [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > ca..
- R 리스트 List - 생성/관련함수/인덱싱 리스트는 키(key)와 값(value) 형태의 데이터를 한 쌍으로 저장하는 자료구조이다. 리스트는 key를 통해서 값(value)을 참조한다. 벡터와 달리 다양한 자료형과 자료구조를 가질 수 있다. ◎ 리스트 생성 key 생략 > x = c(1, 3, 5) > lst = list(3, x, "Korea") > print(lst) [[1]] [1] 3 [[2]] [1] 1 3 5 [[3]] [1] "Korea" > cat(lst) Error in cat(lst) : 타입 'list'인 인자 1는 'cat'에 의하여 다루어 질 수 없습니다 리스트를 만들 때는 list() 함수를 사용한다. 리스트를 출력할 때는 print() 함수를 사용해야 하며 cat() 함수를 사용하면 오류가 발생한다. print() 함수..
- R 벡터 Vector - 생성/연산/인덱싱 벡터(vector)는 R의 기본 자료구조이다. 일련의 값을 순서대로 가지면서 동일한 자료형을 갖는 1차원의 배열구조이다. ◎ 벡터 생성 c() > x = c(1, 2, 3) > print(x) [1] 1 2 3 > y = c(2, 4, 6) > r = c(x, y) > cat(r, '\n') 1 2 3 2 4 6 벡터를 만드는데 가장 많이 쓰이는 함수가 바로 c함수(combine함수)이다. print함수와 cat함수는 모두 결과를 출력해주는 함수이다. 차이가 있다면 print함수는 출력 결과물에서 줄의 가장 앞에 있는 원소의 인덱스(index)를 보여준다. cat함수는 괄호 안의 인자에 "문자", 숫자, '\n', '\t', 함수 등을 넣어서 자유롭게 활용할 수가 있지만 print함수의 경우는 인자를 잘..
- R 스칼라 Scalar - 자료형/내장형상수 스칼라(scalar)란 단일 차원(0차원)의 값을 갖는 데이터 구조이다. R에서의 기본 데이터 구조는 벡터(vector)임으로 스칼라는 다른 의미로 데이터 길이가 1인 벡터이다. R에서 데이터 구조별 차원을 살펴보면 스칼라(scalar)는 0차원(길이가 1인 벡터) 벡터(vector)는 1차원 행렬(matrix)은 2차원 배열(array)은 3 이상의 차원이다. 좀 더 이해를 돕기위해 각각 데이터 구조를 점, 선, 사각형, 직육면체에 빗대어 그려보았다. ◎ 스칼라(단일 데이터)의 자료형 타입 설명 예 Logical 논리형(참, 거짓 : 진릿값) TRUE, T, FALSE, F Integer 정수 10, 15L Double 실수 3.14, 1.25e+5 Complex 복소수 3+4i, 3-4i Charac..
R - Data Operation
- R 문자열 처리 - stringr 패키지/정규표현식 ※ R 문자열 처리 - base 패키지 small22.tistory.com/28 R 문자열 처리 - base 패키지 ※ R 문자열 처리 - stringr 패키지/정규표현식 small22.tistory.com/29 ◎ Base Package 문자열 크기 nchar(x, type = "chars", allowNA = FALSE, keepNA = NA) type "bytes", "chars", "width" 3.. small22.tistory.com ◎ Stringr Package str_extract 문자열의 위치(index) 출력 str_extract_all 문자열의 위치(index) 전체 출력 str_length 문자열 길이 출력 str_locate 문자열에서 특정 문자열 패턴의 첫번째 위치 찾기 str..
- R 문자열 처리 - base 패키지 ※ R 문자열 처리 - stringr 패키지/정규표현식 small22.tistory.com/29 R 문자열 처리 - stringr 패키지/정규표현식 ※ R 문자열 처리 - base 패키지 small22.tistory.com/28 type "bytes", "chars", "width" 3.." data-og-host="small22.tistory.com" data-og-source-url="https://small22.tistory.com/28" data-og-url="https://.. small22.tistory.com ◎ Base Package 문자열 길이 nchar(x, type = "chars", allowNA = FALSE, keepNA = NA) type "bytes", "chars", "wi..
- R 내장데이터셋 Built-in Dataset - attach/detach ◎ 내장 데이터셋 R에서 기본으로 제공하는 데이터셋이 있다. 이 내장 데이터셋은 보통 교육이나 연습 목적으로 많이 활용된다. 그중 가장 많이 활용되는 데이터는 역시 iris일 것이다. Dataset 목록 > data() 콘솔창에 data()를 입력하면 새창이 열리고, R에서 제공하는 내장데이터셋의 목록과 간단한 소개정도가 나열되어 있는 목록을 볼 수 있다. 참고로 Rstudio를 IDE(통합개발환경)로 사용하고 있다. Dataset 불러오기 > iris Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1..
- R 데이터 분리, 병합, 정렬 - split/subset/merge/sort/order ◎ split > result = split(iris, iris$Species) > result $setosa Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa ... $versicolor Sepal.Length Sepal.Width Petal.Length Petal.Width Species 51 7.0 3.2 4.7 1.4 versicolor 52 6.4 3.2 4.5 1.5 versi..
- R table 계열 함수 - 집계함수 > a = c('Kim', 'Lee', 'Park', 'Lee', 'Park', 'Kim', 'Kim') > b = c('M', 'F', 'M', 'F', 'M', 'F', 'M') > c = c('A', 'B', 'A', 'B', 'O', 'O', 'B') > df = data.frame(name=a, gender=b, blood=c) > df name gender blood 1 Kim M A 2 Lee F B 3 Park M A 4 Lee F B 5 Park M O 6 Kim F O 7 Kim M B 이름, 성별, 혈액형으로 구성되는 정보를 데이터프레임으로 만들어 이를 이용해 집계함수를 설명하려 한다. ◎ table() table( ... , exclude = if (useNA == "no") c(N..
- R apply 계열 함수/replicate/sweep/aggregate ◎ apply 계열 함수 함수 적용 반환 apply() 행렬, 배열, 데이터프레임 벡터, 리스트, 행렬, 배열 lapply() 벡터, 리스트, 데이터프레임 리스트 sapply() 벡터, 리스트, 데이터프레임 벡터, 행렬, 배열 tapply() 리스트, 행렬 mapply() 벡터, 리스트, 행렬 apply() apply(X, MARGIN, FUN, ...) MARGIN 함수를 적용하는 방향 1은 행, 2는 열, c(1,2)는 행과 열 모두를 의미 FUN 적용할 함수 apply() 함수는 배열 or 행렬의 행/열 방향으로 동일한 특정 함수가 적용되도록 한다. 실행결과가 어떤 형태로 반환될 것인지는 데이터의 타입과 적용함수의 반환 값에 따라 바뀌며, 예상이 가능하다. > mat = matrix(1:12, 3,..
- R 벡터 Vector 관련 내장함수 최대최소 함수 min(x, na.rm=FALSE) 원소(벡터)의 최소값 max(x, na.rm=FALSE) 원소(벡터)의 최대값 which.min(x) 원소(벡터) 내의 최소값 인덱스 which.max(x) 원소(벡터) 내의 최대값 인덱스 pmin(x, na.rm=FALSE) 여러 벡터에서 병렬 별로 최소값 pmax(x, na.rm=FALSE) 여러 벡터에서 병렬 별로 최대값 > vec = sample(1:100, 10) > vec [1] 41 85 38 6 5 95 42 8 43 51 > min(vec) [1] 5 > max(vec) [1] 95 > which.min(vec) [1] 5 > which.max(vec) [1] 6 > v1 = sample(1:100, 5) > v2 = sample(1:10..
- R 산술/관계/비교/논리연산자와 벡터연산 ◎ 산술연산자 +, -, *, / 사칙연산 %% 나머지 %/% 몫 ^ or ** 제곱, 지수승 sqrt() 제곱근, 루트 사칙연산 > 10 + 2 # 덧셈 [1] 12 > 10 - 2 # 뺄셈 [1] 8 > 10 * 2 # 곱셈 [1] 20 > 10 / 2 # 나누기 [1] 5 > 1:5 * 2 + 1 [1] 3 5 7 9 11 ※ 벡터와 상수, 벡터와 벡터 사칙연산 / 집합함수의 벡터연산 보러가기 small22.tistory.com/8 R 벡터 Vector - 생성/연산/인덱싱 벡터(vector)는 R의 기본 자료구조이다. 일련의 값을 순서대로 가지면서 동일한 자료형을 갖는 1차원의 배열구조이다. ◎ 벡터 생성 c() > x = c(1, 2, 3) > print(x) [1] 1 2 3 > y = c(2..
- R 함수 Function - 함수정의/함수인자/재귀중첩함수 특정 코드블록을 반복적으로 써야할 때 함수를 작성하면 코드의 반복을 줄일 수 있고, 코드의 가독성도 높일 수 있다. 함수를 실행하기 위해서는 반드시 호출을 해야한다. 호출하는 방법은 함수이름 뒤에 소괄호( )를 붙이는 것이다. 이를 함수호출(function call)이라고 한다. ◎ 함수정의 함수명 = function( 인자1, 인자2, ... ) { 실행문 return( 반환값 ) } 인자가 없는 함수 > pi_1 = function() { + cat(3.141592653589793) + } > pi_1() 3.141593 > x = pi_1() 3.141593 > x NULL 인자가 없이 pi값을 출력하는 함수이다. return은 생략할 수 있지만 pi값을 x 객체로 받으려해도 x 객체에는 NULL ..
- R 반복문 - for/while/repeat/break와 next ◎ for for ( i in 열거형객체 ) { i를 사용한 실행문 } for 문은 열거형객체 안의 원소를 차례로 i에 할당하여 블록 안의 실행문을 반복 실행한다. 실행문이 하나일 경우 중괄호는 생략가능하다. 열거형객체는 벡터가 될 수도 있고, 데이터프레임이 될 수도 있다. > num = scan() 1: 77 2: 52 3: 100 4: 29 5: 0 6: Read 5 items > num [1] 77 52 100 29 0 > > for(i in num) { + if(i %% 2 == 0) cat(i,'= 짝수\n') else cat(i,'= 홀수\n') + } 77 = 홀수 52 = 짝수 100 = 짝수 29 = 홀수 0 = 짝수 scan() 함수는 Console(콘솔)창에서 값을 입력할 수 있고, ..
- R 조건문 - if/ifelse/switch/which 조건문은 조건이 참인지 거짓인지에 따라 달라지는 계산이나 상황을 수행한다. 조건문에도 종류가 여러가지 있다. ◎ if if( 조건식 ) 실행문 > score = 85 > if(score >= 80) cat('합격') 합격 > if(score >= 80) print('합격') [1] "합격" print() 함수를 쓰면 출력결과 앞에 인덱스도 함께 출력된다. > if(TRUE) {score = 100 + cat('점수는', score, '점이다')} 점수는 100 점이다 > if(T) score = 100; cat('점수는', score, '점이다') 점수는 100 점이다 조건문 자리에 T or TURE 를 사용하면 실행문을 무조건 실행한다. 실행문이 두 문장 이상이면 중괄호를 사용하거나 문장들 사이에 세미..
R - Graph
- R 연속변수 시각화 - 상자그림 boxplot 변수 개수 변수 형태 그래프 일변량 연속형 데이터 히스토그램 (hist) 상자그림 (boxplot) 범주형 데이터 (명목형, 수치형) 막대 그래프 (barplot) 파이 차트 (pie) 점 차트 (dotchart) 다변량 연속형 데이터 산점도(행렬) (plot, pairs) 범주형 데이터 모자이크 플롯 (mosaicplot) ◎ 상자그림 boxplot(x, ..., range = 1.5, width = NULL, notch = FALSE, outline = TRUE, names, plot = TRUE, border = par("fg"), col = "lightgray", pars = list(boxwex = 0.8, staplewex = 0.5, outwex = 0.5), horizontal = FALS..
- R 연속변수 시각화 - 히스토그램 hist 변수 개수 변수 형태 그래프 일변량 연속형 데이터 히스토그램 (hist) 상자 그래프 (boxplot) 범주형 데이터 (명목형, 수치형) 막대 그래프 (barplot) 파이 차트 (pie) 점 차트 (dotchart) 다변량 연속형 데이터 산점도(행렬) (plot, pairs) 범주형 데이터 모자이크 플롯 (mosaicplot) ◎ 히스토그램 hist(x, freq = NULL, probability = !freq, density = NULL, angle = 45, col = "lightgray", border = NULL, main = paste("Histogram of" , xname), xlim = range(breaks), ylim = NULL, xlab = xname, ylab, axes = T..
- R 이산변수 시각화 - 모자이크 플롯 mosaicplot 변수 개수 변수 형태 그래프 일변량 연속형 데이터 히스토그램 (hist) 상자 그래프 (boxplot) 범주형 데이터 (명목형, 수치형) 막대 그래프 (barplot) 파이 차트 (pie) 점 차트 (dotchart) 다변량 연속형 데이터 산점도(행렬) (plot, pairs) 범주형 데이터 모자이크 플롯 (mosaicplot) ◎ 모자이크 플롯 mosaicplot(x, main = deparse1(substitute(x)), sub = NULL, xlab = NULL, ylab = NULL, sort = NULL, off = NULL, dir = NULL, color = NULL, shade = FALSE, cex.axis = 0.66, las = par("las"), border = NULL, .....
- R 이산변수 시각화 - 파이차트 pie 변수 개수 변수 형태 그래프 일변량 연속형 데이터 히스토그램 (hist) 상자 그래프 (boxplot) 범주형 데이터 (명목형, 수치형) 막대 그래프 (barplot) 파이 차트 (pie) 점 차트 (dotchart) 다변량 연속형 데이터 산점도(행렬) (plot, pairs) 범주형 데이터 모자이크 그래프 (mosaicplot) ◎ 파이차트 pie(x, labels = names(x), edges = 200, radius = 0.8, clockwise = FALSE, init.angle = if(clockwise) 90 else 0, density = NULL, angle = 45, col = NULL, border = NULL, lty = NULL, main = NULL, ...) x 양수값을 갖는 ..
- R 이산변수 시각화 - 점차트 dotchart 변수 개수 변수 형태 그래프 일변량 연속형 데이터 히스토그램 (hist) 상자 그래프 (boxplot) 범주형 데이터 (명목형, 수치형) 막대 그래프 (barplot) 파이 차트 (pie) 점 차트 (dotchart) 다변량 연속형 데이터 산점도(행렬) (plot, pairs) 범주형 데이터 모자이크 그래프 (mosaicplot) ◎ 점차트 dotchart(x, labels = NULL, groups = NULL, gdata = NULL, cex = par("cex"), pt.cex = cex, pch = 21, gpch = 21, bg = par("bg"), color = par("fg"), gcolor = par("fg"), lcolor = "gray", xlim = range(x[is.finite(..
- R 이산변수 시각화 - 막대그래프 barplot 변수 개수 변수 형태 그래프 일변량 연속형 데이터 히스토그램 (hist) 상자 그래프 (boxplot) 범주형 데이터 (명목형, 수치형) 막대 그래프 (barplot) 파이 차트 (pie) 점 차트 (dotchart) 다변량 연속형 데이터 산점도(행렬) (plot, pairs) 범주형 데이터 모자이크 그래프 (mosaicplot) ◎ 막대 그래프 barplot(height, width = 1, space = NULL, names.arg = NULL, legend.text = NULL, beside = FALSE, horiz = FALSE, density = NULL, angle = 45, col = NULL, border = par("fg"), main = NULL, sub = NULL, xlab = N..
- R 산점도 Scatter - 산점도행렬/3차원산점도 > head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa iris 데이터를 사용해 산점도 행렬과 3차원 산점도 그래프를 설명하려 한다. ◎ 산점도 행렬 pairs( x, ... ) pairs( formula, data = NULL, ... ) 산점도 행렬은 다변량 데이터에서 변수 간의 산점도들을 그린 그래프이다. 변수들 간의 상관관계 등의 특징을 알아보는데 유용하다. pa..
- R 산점도 Scatter - plot/그래프 옵션 산점도(Scatter Plot)는 주어진 데이터를 점으로 표시해 시각화한 그래프이다. 데이터의 분포를 한눈에 살펴볼 수 있어 유용하다. ◎ plot() 함수 plot(x, y, ...) R에서 산점도는 plot() 함수로 그린다. plot( X좌표, Y좌표 )의 형식을 사용하기도 하지만 plot( Y좌표 ~ X1좌표 + X2좌표 + ... )의 포뮬라 형식을 사용하면 여러개의 그래프를 차례대로 출력해준다.(콘솔창에서 엔터키를 누르면 그래프를 볼 수 있다.) > x = runif(15, 1, 100); x [1] 24.15888 86.42449 80.39122 46.64328 22.62998 70.58812 [7] 29.39419 86.16871 79.72915 19.48776 32.10229 70.690..
etc
- Tistory 티스토리 코드블럭 테마 변경 티스토리에서는 R 코딩을 지원해주지 않고, 코드 테마도 못생겼어요. R 코드를 예쁘게 변경하기 위해 여기저기 검색도 해보고 따라해봤지만 자꾸 적용이 안되어 직접 포스팅하게 되었습니다. R 뿐만 아니라 Python, SQL, ... 등 다른 언어들도 바꿀 수 있어요. 코드유형에 R이 없어서 SQL로 먼저 지정하고 R 코드로 예쁘게 변경하는 방법을 알려드릴게요. 먼저 prismjs.com/ 에 접속합니다. highlight도 함께 사용하긴 하는데 저는 Prism에서만 파일을 다운받아 사용해도 충분히 예쁘더라구요. Prism Supported languages This is the list of all languages currently supported by Prism, with their correspon..
- 자음 + 한자 특수문자 ㄱ + 한자키 문장부호 ! ' , . / : ; ? ^ _ ` |  ̄ 、 。 · ‥ … ¨ 〃 ― ∥ \ ∼ ´ ~ ˇ ˘ ˝ ˚ ˙ ¸ ˛ ¡ ¿ ː ㄲ + 한자키 라틴 문자 Æ Ð Ħ IJ Ŀ Ł Ø Œ Þ Ŧ Ŋ æ đ ð Ł Ø ij ĸ ŀ ł ø œ ß þ ŧ ŋ ʼn ㄴ + 한자키 괄호 " ( ) [ ] { } ‘ ’ “ ” 〔 〕 〈 〉 《 》 「 」 『 』 【 】 ㄷ + 한자키 수학기호 + - < = > ± × ÷ ≠ ≤ ≥ ∞ ∴ ♂ ♀ ∠ ⊥ ⌒ ∂ ∇ ≡ ≒ ≪ ≫ √ ∽ ∝ ∵ ∫ ∬ ∈ ∋ ⊆ ⊇ ⊂ ⊃ ∪ ∩ ∧ ∨ ¬ ⇒ ⇔ ∀ ∃ ∮ ∑ ∏ ㄸ + 한자키 히라가나 ぁ あ ぃ い ぅ う ぇ え ぉ お か が き ぎ う ぐ け げ こ ご さ ざ し じ す ず せ ぜ そ ぞ た だ ち..
반응형