본문 바로가기
반응형

R강의147

[R 강의] 32. 행렬식, 고유값, 고유벡터 도구 R로 푸는 통계32. 행렬식, 고유값, 고유벡터 1. 행렬식 행렬식은 역행렬이 존재하는지 판단해줍니다. 일차연립방정식의 근이 유일하게 존재하는지 결정해주는 역할도 합니다. 수학적인 설명은 생략합니다. 행렬식을 구할 때는 det 함수를 사용합니다. > A=matrix(c(1,2,3,4),ncol=2)> A [,1] [,2][1,] 1 3[2,] 2 4> det(A)[1] -2 행렬식은 정방행렬(nxn행렬)인 경우에만 구할 수 있습니다. > B=matrix(c(1,2,3,4),ncol=4)> B [,1] [,2] [,3] [,4][1,] 1 2 3 4> det(B)Error in determinant.matrix(x, logarithm = TRUE, ...) : 'x'는 반드시 정방행렬이어야 합니다 2.. 2020. 3. 21.
[R 강의] 31. 역행렬, 전치행렬 도구 R로 푸는 통계31. 역행렬, 전치행렬 1. 역행렬(Inverse matrix) 행렬의 역행렬은 자기자신과 곱한 결과가 단위행렬인 행렬입니다. A의 역행렬을 B라고 한다면 아래 등식이 성립합니다. A%*%B=I 역행렬은 solve 함수를 이용하여 구합니다. > A=matrix(c(1,2,3,4),ncol=2)> A [,1] [,2][1,] 1 3[2,] 2 4> B=solve(A)> B [,1] [,2][1,] -2 1.5[2,] 1 -0.5> A%*%B [,1] [,2][1,] 1 0[2,] 0 1 역행렬은 정방행렬(nxn행렬)에서만 정의가 가능합니다. 정방행렬이 아닌 경우에는 아래와 같은 오류가 발생합니다. > A=matrix(c(1,2,3,4),ncol=4)> A [,1] [,2] [,3] [.. 2020. 3. 21.
[R 강의] 30. 행렬의 연산 2 (원소 간의 곱셈, 나눗셈, 거듭제곱) 도구 R로 푸는 통계 30. 행렬의 연산2 (원소 간의 곱셈, 나눗셈, 거듭제곱) 지난시간에는 행렬의 일반적인 덧셈과 곱셈에 대해 알아보았습니다. 오늘은 행렬 연산의 특수한 경우입니다. 원소 간의 곱셈, 나눗셈, 거듭제곱 방법에 대해 알아봅시다. 1. 행렬 원소 간의 곱셈 행렬의 곱셈에 사용했던 기호 %*% 와 달리, 일반 곱셈기호 *를 사용합니다. > mat1=matrix(c(1,2,3,4),ncol=2) > mat1 [,1] [,2] [1,] 1 3 [2,] 2 4 > mat2=matrix(c(1,2,3,4),ncol=2) > mat2 [,1] [,2] [1,] 1 3 [2,] 2 4 > mat1*mat2 [,1] [,2] [1,] 1 9 [2,] 4 16 2. 행렬 원소 간의 나눗셈 일반 나눗셈 기.. 2020. 3. 19.
[R 강의] 29. 행렬의 연산(덧셈,곱셈) 도구 R로 푸는 통계 29. 행렬의 연산(덧셈,곱셈) 1. 행렬과 스칼라의 곱셈 행렬에 스칼라값을 곱하면 모든 요소에 동일하게 곱해집니다. > mat=matrix(c(1,2,3,4,5,6,7,8,9),ncol=3) > mat [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 > 3*mat [,1] [,2] [,3] [1,] 3 12 21 [2,] 6 15 24 [3,] 9 18 27 2. 행렬의 덧셈 행렬의 덧셈은 같은 크기끼리만 가능합니다. > mat1=matrix(c(1,2,3,4),ncol=2) > mat1 [,1] [,2] [1,] 1 3 [2,] 2 4 > mat2=matrix(c(3,4,5,6),ncol=2) > mat2 [,1] [,2] [1,] 3 5 [.. 2020. 3. 19.
[R 강의] 28. 행렬 내부 데이터에 접근하기 도구 R로 푸는 통계 28. 행렬 내부 데이터에 접근하기 행렬 내부 데이터에 접근하는 방법을 알아봅시다. 먼저 행렬을 하나 정의해봅시다. > mat=matrix(c(1,2,3,4,5,6),ncol=2) > mat [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6 1행1열에 접근하겠습니다. 대괄호를 사용합니다. > mat[1,1] [1] 1 2행1열에 접근하겠습니다. > mat[2,1] [1] 2 한 행 전체에 접근해봅시다. 3행 전체에 접근해보겠습니다. 열을 입력하는 부분을 비우면 됩니다. > mat[3,] [1] 3 6 한 열 전체에 접근해봅시다. 2열 전체에 접근해보겠습니다. 행을 입력하는 부분을 비우면 됩니다. 열이 세로로 불러지진 않습니다. > mat[,2] [1] 4 5 6 1행.. 2020. 3. 19.
[R 강의] 27. 행렬 정의하기 matrix 도구 R로 푸는 통계 27. 행렬 정의하기 matrix 1. 행렬 정의하기 행렬은 하나의 벡터를 행과 열로 나누는 방식으로 정의합니다. 3x3행렬을 만들고 싶다면, 원소가 9개인 벡터를 정의하고 원소 세 개씩 세 줄로 나열하는 것입니다. 예를 들어봅시다. > vec=c(1,2,3,4,5,6,7,8,9) > matrix(vec,ncol=3) [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 ncol은 열의 수, 즉 세로줄의 수를 뜻합니다. nrow(가로줄의 수)를 정의해도 됩니다. > matrix(vec,nrow=3) [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 행렬 안에 벡터를 직접 정의해줄 수도 있습니다. > mat=matri.. 2020. 3. 19.
[R 강의] 25. 함수 정의 해보기(평균을 구해주는 함수) 도구 R로 푸는 통계 25. 함수 정의해보기(평균을 구해주는 함수) R에서는 사용자가 함수를 정의할 수 있습니다. 아래와 같은 규칙을 따릅니다. 함수이름 = function(인자,인자,...) {함수 내용} 예를 들어봅시다. 평균을 구하는 함수를 만들어볼 겁니다. 결과를 반환할 때는 return을 사용합니다. return(결과) 의 형태로 사용하시면 됩니다. > my_mean = function(a) + { + results=sum(a)/length(a) + return(results) + } 평균을 구해주는 함수가 정의되었습니다. 한번 사용해봅시다. > b=c(1,2,3,4,5) > my_mean(b) [1] 3 영상이 더 편하신 분 2020. 3. 18.
[R 강의] 24. 반복문 repeat 도구 R로 푸는 통계 24. 반복문 repeat R에서 제공하는 반복문에는 for, while, repeat이 있는데요. 이번 글에서는 repeat문을 공부해봅시다. repeat문은 중괄호 안의 내용을 반복해서 실행해줍니다. 끝없이 실행되기 때문에 주로 if, break 문과 함께 사용됩니다. repeat{ 실행을 원하는 문장 } 예를 들어봅시다. > repeat{ + print("hi") + } 이렇게 입력하시면 컴퓨터가 멈추는 것을 확인할 수 있습니다. 이번에는 if, break 문과 함께 사용해봅시다. > i=0 > repeat{ + print("hi") + i=i+1 + if(i>10) break + } [1] "hi" [1] "hi" [1] "hi" [1] "hi" [1] "hi" [1] "hi.. 2020. 3. 18.
[R 강의] 23. 반복문 while 도구 R로 푸는 통계 23. 반복문 while R에서 제공하는 반복문에는 for, while, repeat이 있는데요. 이번 글에서는 while문을 공부해봅시다. while문은 (조건) 이 참인 경우에 중괄호 안의 문장을 실행해줍니다. while (조건) { 조건이 참일 때 수행하는 문장 } 예를 들어봅시다. hi를 10번 출력하는 while문입니다. > i=0 > while(i i=0 > while(i 2020. 3. 18.
[R 강의] 22. 출력함수 print, cat 도구 R로 푸는 통계 22. 출력함수 print, cat 1. print 함수 하나의 숫자 또는 문자를 출력해주는 함수입니다. 예를 들어봅시다. > print("hi") [1] "hi" > print(12) [1] 12 print 함수에서 두개의 숫자를 출력하려고 시도해보겠습니다. > print(1,2) [1] 1 첫 숫자만 출력된 것을 확인할 수 있습니다. 2. cat 함수 여러 숫자 또는 문자를 출력해주는 함수입니다. 예를 들어봅시다. > cat(1,2,3,4,5) 1 2 3 4 5> cat함수는 개행을 기본으로 하지 않습니다. 따라서 개행을 해주려면 '\n' 을 추가해주어 야 합니다. > cat(1,2,3,4,5,'\n') 1 2 3 4 5 > 더 복잡한 예를 들어보겠습니다. > cat(1,2,3,.. 2020. 3. 17.
[R 강의] 21. 반복문 for 도구 R로 푸는 통계 21. 반복문 for R에서 제공하는 반복문에는 for, while, repeat이 있는데요. 이번 글에서는 for문을 공부해봅시다. for문은 data안에 있는 값들을 i에 할당하고, 중괄호 안의 반복식을 순차적으로 실행하는 반복문입니다. for(i in data) { 반복식 } 예를 들어봅시다. 1부터 10까지 더하는 for문을 만들어봅시다. > j=0 > for(i in 1:10){ + j=j+i + } > j [1] 55 조금 더 어려운 예를 들어봅시다. 지난시간에 배운 if문과 함께 사용해보겠습니다. 1~100까지의 홀수들을 더하는 for문을 만들어봅시다. > odd=0 > for(i in 1:100){ + if(i%%2==0){ + } else { + odd=odd+i} .. 2020. 3. 17.
[R 강의] 20. 연산자 %% , %/% 도구 R로 푸는 통계 20. 연산자 %%, %/% 1. 연산자 %% %%는 나머지를 구해주는 연산자입니다. 예를들어봅시다. > 3%%2 [1] 1 > 10%%4 [1] 2 > -3%%2 [1] 1 > -3%%-2 [1] -1 > 4%%-3 [1] -2 나누는 수가 양수이면 나머지가 양수, 나누는 수가 음수이면 나머지가 음수가 됩니다. 2. 연산자 %/% %/%는 정수인 몫을 구해주는 연산자입니다. > 7%/%2 [1] 3 > -3%/%2 [1] -2 > -3%/%-2 [1] 1 > 4%/%-3 [1] -2 나누는 수가 양수이면 나머지가 양수, 나누는 수가 음수이면 나머지가 음수가 됩니다. 영상이 더 편하신 분 2020. 3. 17.
[R 강의] 19. 조건문 if 도구 R로 푸는 통계 19. 조건문 if 조건문을 이용하면, 특정 조건에 맞을 때 어떤 엑션을 하도록 만들 수 있습니다. 예를들어 "데이터의 값이 0보다 크면 양수라고 출력하라" 와 같은 작업이 가능합니다. 세가지 형태의 조건문이 있습니다. - if, else 문 - if, else if, else 문 - ifelse 문 1. if, else문 if (조건식) { 조건식이 참일 경우 실행하는 명령 } else { 조건식이 거짓일 경우 실행하는 명령 } 예를 들어봅시다. > x=3 > if(x>0){ + "양수입니다" + } else { + "양수가 아닙니다 + } [1] "양수입니다" 2. if, else if, else 문 else if 를 이용하면 여러개의 조건식을 넣을 수 있습니다. if (조건식1.. 2020. 3. 17.
[R 강의] 18. Box plot(상자그림) 그리는 방법 1. 상자그림 R을 이용하여 상자그림을 그리는 방법을 알아봅시다. 아래와 같은 그림이 상자그림인데요. 점선부분이 수염처럼 생겼기 때문에 상자수염그림이라고도 부릅니다. 상자그림은 다섯가지 정보를 담고 있는 그림입니다. - 최댓값 - 3사분위수 (데이터의 75%가 이 값 이하 또는 데이터의 25%가 이 값 초과) - 2사분위수 (순서상 50%에 위치하는 값, 중간값) - 1사분위수 (데이터의 25%가 이 값 이하) - 최솟값 사분위수를 계산하는 방법은 여러가지가 있는데요. R에서는 9가지 방법을 제공하고 있습니다. 나중에 자세히 다루도록 합시다. 벡터를 하나 정의하고 상자그림을 그려봅시다. > x=c(1,2,3,4,5) > boxplot(x) 가로선이 위에서부터 다섯개가 그려져 있습니다. 맨 위 가로선이 최.. 2020. 3. 16.
[R 강의] 17. 벡터 요소에 이름 부여하기 names() 도구 R로 푸는 통계 17. 벡터 요소에 이름 부여하기 names() 벡터 요소에 이름을 부여할 수 있습니다. names() 라는 함수를 사용합니다. 벡터를 하나 정의하고 이름을 부여해봅시다. > x=c(1,2,3,4,5) > names(x)=c("a","b","c","d","e") > x a b c d e 1 2 3 4 5 만약 원소의 개수보다 적은 이름을 정의하면 어떻게되는지도 해봅시다. > y=c(1,2,3,4,5) > names(y)=c("aa","bb") > y aa bb 1 2 3 4 5 이름을 정의하지 않은 원소에는 NA(not available)가 표시됩니다. 이미 원소 이름을 정의한 벡터에 name 함수를 적용하면 정의한 이름을 볼 수 있습니다. > names(x) [1] "a" "b" .. 2020. 3. 16.
[R 강의] 16. 여러 통계량 한 번에 계산해주는 함수 (summary) 도구 R로 푸는 통계 16. 여러 통계량 한 번에 계산해주는 함수 (summary) R에는 여러 통계량을 한번에 계산해주는 함수가 있습니다. summary라는 함수인데요. 사용해봅시다. > a=c(1,4,2,56,6,234,51,1,23) > summary(a) Min. 1st Qu. Median Mean 3rd Qu. Max. 1 2 6 42 51 234 1st Qu 는 first quartile를 의미합니다. 1사분위수에요. 입력한 수들을 작은 수 부터 큰 수까지 나열했을 때, 왼쪽에서 부터 25%에 있는 수 입니다. 3rd Qu는 third quartile이고 3사분위수입니다. 왼쪽에서 부터 75%에 있는 수이죠. 영상이 더 편하신 분 2020. 3. 16.
[R 강의] 15. 정의한 변수목록 보는 법, 삭제하는 법 도구 R로 푸는 통계 15. 정의한 변수목록 보는 법, 삭제하는 법 여러 변수를 만들고 나서, '내가 어떤 변수를 만들었지?'라고 하는 경우가 있습니다. 이럴 때, 지금까지 만든 변수를 목록으로 보여주는 함수를 이용하면됩니다. 1. 정의한 변수 목록 보는 법 먼저 변수를 몇개 만들겠습니다. > num=c(1,2,3,4,5) > char=c("a","b","c") > .na=c(NA,NA,NA) > null=NULL ls( ) 를 입력하면 정의한 변수 목록을 보여줍니다. > ls() [1] "char" "null" "num" 그런데 .na는 모여주지 않습니다. 함수의 디폴트 정의가 점(.)으로 시작하는 변수는 보여주지 않도록 되어 있기 때문입니다. 점으로 시작하는 변수를 보려면 아래와 같이 설정해주어야 합.. 2020. 3. 16.
[R 강의] 14. 자료형 변환하기 도구 R로 푸는 통계 14. 자료형 변환하기 자료형끼리는 서로 변환이 가능합니다. 1. 문자열로 변환 as.character(x) 실수를 문자열로 바꿔봅시다. > a=c(1,2,3) > b=as.character(a) > b [1] "1" "2" "3" 2. 복소수로 변환 as.complex(x) 문자열을 복소수로 바꿔봅시다. > a=c("1","13","14") > b=as.complex(a) > b [1] 1+0i 13+0i 14+0i 3. 실수로 변환 as.numeric(x) or as.double(x) 논리값을 실수로 바꿔봅시다. > a=c(TRUE,FALSE,FALSE) > b=as.numeric(a) > b [1] 1 0 0 4. 정수로 변환 as.integer(x) 복소수를 정수로 바꿔봅시다.. 2020. 3. 15.
[R 강의] 13. 자료형 분류하기, 확인하기 (mode, typeof) 도구 R로 푸는 통계 13. 자료형 분류하기, 확인하기(mode,typeof) 우리가 지금까지 배운 자료형의 종류는 아래와 같습니다. - 숫자 (numeric) - 복소수 (complex) - 문자열 (string) - 논리값 (logical) - NULL (NULL) - 리스트 (list) 이 외에도 더 있는데, 나머지는 나중에 다루도록 할게요. 정의한 변수가 어떤 자료형인지 확인하는 함수는 두 가지가 있습니다. mode( ) typeof( ) 둘의 차이는 아래와 같습니다. typeof() mode() integer(정수형) double(실수형) numeric(숫자형) special builtin function simbol name language ( call 2,3,4번은 처음보는 것들이죠? 나중에.. 2020. 3. 15.
[R 강의] 12. 복소수 입력하는 법 도구 R로 푸는 통계 12. 복소수 입력하는 법 R에서는 실수 뿐 아니라 복소수도 입력할 수 있고 연산도 가능합니다. 아래와 같이 입력합니다. a=1+2i i하나만 입력할 때는 앞에 1을 붙여주어야 합니다. 그냥 입력하면 에러가 뜹니다. > a=1+i 에러: 객체 'i'를 찾을 수 없습니다 > a=1+1i > a [1] 1+1i 나눗셈과 곱셈도 가능합니다. > (1+2i)*(3-3i) [1] 9+3i > (1+2i)/(3-3i) [1] -0.1666667+0.5i 벡터로도 입력할 수 있고, 실수와 함께 입력가능합니다. > a=c(1,3,1-3i,2+3i) > a [1] 1+0i 3+0i 1-3i 2+3i 영상이 더 편하신 분 2020. 3. 15.
[R 강의] 11. 리스트 (aka 사전) 도구 R로 푸는 통계 11. 리스트 (aka 사전) 리스트는 벡터처럼 데이터를 담는 그릇입니다. 벡터는 같은 종류의 데이터만 입력이 가능했는데요. 리스트는 여러 종류의 데이터를 입력할 수 있습니다. 공부해봅시다. 1. 리스트 생성하기 리스트에 데이터를 입력해 봅시다. 숫자와 문자열이 함께 입력됩니다. > a=list("PAUL",35) > a [[1]] [1] "PAUL" [[2]] [1] 35 일반적으로 '변수명' 과 '값'을 연결하여 저장합니다. 간단한 예를 들어봅시다. > a=list(name="PAUL", age=35) > a $`name` [1] "PAUL" $age [1] 35 이름에는 변수명 설정 규칙이 적용됩니다(3강에서 설명). 값에는 숫자, 문자열, 진리값, NULL ,factor를 입.. 2020. 3. 15.
[R 강의] 4. 유용한 함수 1탄 (min, max, range, length, sum, prod) 도구 R로 푸는 통계 4. 유용한 함수 1탄(min,max,range,length,sum,prod) R에는 어마어마하게 많은 내장함수들이 있습니다. 그중 유용한 함수 6가지를 소개할게요. 4.1 min( ) 최솟값을 구해주는 함수입니다. > x=c(1,2,3,4,5) > min(x) [1] 1 4.2 max( ) 최댓값을 구해주는 함수입니다. > x=c(1,2,3,4,5) > max(x) [1] 5 4.3 range( ) 범위를 알려주는 함수인데요. 최솟값과 최댓값을 표시해줍니다. > x=c(-1,-2,0,4,5) > range(x) [1] 1 5 4.4 length( ) 전체 요소의 개수를 구해줍니다. > x=c(-0.1, 1+1, 2*3, 5/2) > length(x) [1] 5 4.5 sum( ) .. 2020. 3. 14.
[R강의] 3. 변수에 숫자 데이터 입력 도구 R로 푸는 통계 3. 변수에 숫자 데이터 입력 R에서 데이터를 입력하는 방법을 배워봅시다. 문자데이터, 논리데이터 등 데이터 종류가 여러개 있는데, 오늘은 숫자만 다룰겁니다. 3.1 변수에 숫자 데이터 입력 1) 숫자 하나 입력(스칼라 or 크기가 1인 벡터) 변수에 숫자 하나를 입력할 때는 아래와 같이 등호만 사용해주면 됩니다. >a=3 a에 3이 입력됩니다. > a+3 [1] 6 숫자 처럼 연산도 가능하구요. a에 다른 수를 할당하면, a가 바뀝니다. > a=5 > a [1] 5 2) 여러 숫자 입력 (벡터) 여러 데이터로 이루어진 집합을 하나의 변수에 입력할 때를 알아봅시다. x={1,12,23,34,45,56,67} 위와 같이 어떤 자연수들의 집합이 있습니다. X라는 변수에 저장하고 싶을 때.. 2020. 3. 14.
[R강의] 2. 기본연산자, 기본함수 도구 R로 푸는 통계 2. 기본연산자, 기본함수 R의 기본연산자와 기본함수에 대해 공부해봅시다. 2.1 기본연산자 1) 덧셈 > 2+2 [1] 4 2) 뺄셈 >5-2 [1] 3 3) 곱셈 >3*5 [1] 15 4) 나눗셈 >2/5 [1] 0.4 5) n제곱 >3^2 [1] 9 [1]은 1행이라는 의미입니다. 나중에 행렬을 정의할건데 그때 이 표시의 의미를 이해하실수 있을거에요. 2.2 기본함수 1) 로그 > log(2) [1] 0.6931472 2) 익스포넨셜 > exp(2) [1] 7.389056 3) 삼각함수 > sin(pi/2) [1] 1 > cos(pi/2) [1] 6.123032e-17 > tan(pi/2) [1] 1.633124e+16 4) 제곱근 > sqrt(2) [1] 1.414214 영상.. 2020. 3. 14.
[R 코딩 연습문제] 두 데이터의 평균, 표준편차, 총합, 원소 수를 비교해주는 함수 (R 코딩실력 향상을 위한 연습문제입니다.) Question 두 데이터를 벡터로 입력받고, 두 데이터의 평균, 표준편차, 총합, 원소 수를 비교해주는 함수를 만들어 봅시다. 아래와 같은 결과가 출력되야 합니다. Answer 먼저 1강에서 배운 크기비교함수를 아래와 같이 변형하겠습니다. comp=function(a,b) { if (a>b) {results=">"} else if (a data1=c(10,23,15,24,15,26) > data2=c(15,25,16,17,28,34,15,23,74) > myfun(data1,data2) data1 data2 mean 18.83 2020. 3. 14.
[R 코딩 연습문제] 구구단을 출력하는 함수를 만들어봅시다. (R 코딩실력 향상을 위한 연습문제입니다.) Question 구구단을 출력하는 함수를 만들어봅시다. 숫자 하나를 입력받으면, 이 숫자에 해당하는 구구단을 출력하는 것입니다. 아래와 같은 결과가 출력되야 합니다. > myfun(5)[1] "5 x 1 = 5"[1] "5 x 2 = 10"[1] "5 x 3 = 15"[1] "5 x 4 = 20"[1] "5 x 5 = 25" Answer for문을 이용합니다. a라는 숫자를 받으면, a에 1부터 a까지 곱한 결과를 출력합니다. 1부터 a까지의 숫자를 한번씩 대입하며 for문의 루프가 반복됩니다. 예를들어 a가 3이라면 1부터 3까지 총 세번의 루프가 반복됩니다. 첫번째 루프에서는 3x1=3두번째 루프에서는 3x2=6세번째 루프에서는 3x3=9가 출력됩니다. R.. 2020. 3. 14.
[R강의] 1. R 설치하기 도구 R로 푸는 통계 1. R 설치하기 1. 구글에 R다운로드 라고 검색합니다. 첫번째 사이트를 클릭합니다. 2. 표시한 부분을 클릭합니다. (다운로드가 진행됩니다.) 3. 설치를 진행합니다. 4. R을 실행하고 글자 크기를 바꿔봅시다. 편집->GUI 설정에 들어갑니다. 5. size를 변경해줍니다. 영상이 더 편하신 분 2020. 3. 14.
반응형