본문 바로가기

R27

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.. 2020. 11. 5.
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 .. 2020. 11. 3.
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(콘솔)창에서 값을 입력할 수 있고, .. 2020. 11. 3.
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 를 사용하면 실행문을 무조건 실행한다. 실행문이 두 문장 이상이면 중괄호를 사용하거나 문장들 사이에 세미.. 2020. 10. 27.
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.. 2020. 10. 26.
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개를 .. 2020. 10. 26.
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.. 2020. 10. 19.
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.. 2020. 10. 16.
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.. 2020. 10. 14.
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() 함수.. 2020. 8. 11.
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함수의 경우는 인자를 잘.. 2020. 7. 28.
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.. 2020. 7. 28.
반응형