[R 강의] 41. 복제함수 (rep)
도구 R로 푸는 통계 41. 복제함수 (rep) rep는 복제함수입니다. replicate의 줄임 말입니다. 아래와 같이 사용합니다. rep(복제하기 원하는 스칼라 혹은 벡터, 복제 횟수와 방식) ex1) 2를 5번 복제 > rep(2,times=5) [1] 2 2 2 2 2 times를 생략하고 써도됩니다. > rep(2,5) [1] 2 2 2 2 2 ex2) 백터 (1,2,3)을 5번 복제 > rep(c(1,2,3),times=5) [1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 ex3) 벡터 (1,2,3)을 5번 복제하는데, 원소단위로 복제 > rep(c(1,2,3),each=5) [1] 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 each는 생략할 수 없습니다. 생략할 경우 ..
2020. 3. 23.
[R 강의] 40. 등차수열 생성함수 (seq함수)
도구 R로 푸는 통계 40. 등차수열 생성함수 (seq함수) seq함수는 '등차수열'을 생성해주는 함수입니다. 아래와 같은 형식으로 입력합니다. seq(시작,끝,간격 or 길이) 간격(or길이)를 입력해주지 않으면 default로 간격 1이 입력됩니다. ex1) 1~10의 범위와 간격1을 갖는 등차수열 > seq(from=1,to=10) [1] 1 2 3 4 5 6 7 8 9 10 아래와 같이 from, to를 생략해줄 수 있습니다. > seq(1,10) [1] 1 2 3 4 5 6 7 8 9 10 ex2) 1~10의 범위와 간격2를 갖는 등차수열 > seq(from=1,to=10,by=2) [1] 1 3 5 7 9 아래와 같이 from, to,by를 생략해줄 수 있습니다. > seq(1,10,2) [1..
2020. 3. 23.
[R 강의] 39. 모집단에서 표본 추출하기 (sample 함수)
도구 R로 푸는 통계 39. 모집단에서 표본 추출하기 (sample 함수) 1. sample(x,n) x라는 벡터에서 n개의 표본을 순서가 있게 뽑습니다. > sample(1:10,3) [1] 6 10 3 x를 입력하지 않으면 x에 1:n이 자동으로 입력됩니다. > sample(3) [1] 1 2 3 2. sample(x,n,replace=TRUE) x라는 벡터에서 중복을 허용하여 n개의 표본을 순서가 있게 뽑습니다. > sample(1:5,10,replace=TRUE) [1] 3 4 3 3 4 3 5 2 1 3 3. sample(x,n,prob=c(...)) x라는 벡터에서 중복을 허용하여 n개의 표본을 순서가 있게 뽑는데, 각 변수를 뽑는 확률을 지정해줍니다. > sample(c(1,2,3,4,5,6..
2020. 3. 23.
[R 강의] 38. Box Plot(상자그림)에 관측수, 표준편차 넣기
도구 R로 푸는 통계 38. Box Plot(상자그림)에 관측수, 표준편차 넣기 세 개의 데이터를 정의하고 boxplot을 그려봅시다. > a=c(1,2,3) > b=c(1,2,3,4,5) > c=c(1,2,3,4,5,6,7,8) > BP1=boxplot(a,b,c,ylim=c(0,10),names=c("A","B","C")) 1. 관측 수 넣기 text 함수를 이용하여 관측 수를 입력해줍니다. text(x좌표, y좌표, 텍스트) > text(1:3,BP1$stats[5,],paste("n=",BP1$n)) 위치를 나타내는 숫자 5를 1로 바꿔봅시다. 입력한 text를 바꾸고 싶으면, Boxplot을 다시 그려주어야 합니다. 그렇게 하지 않으면 text가 계속 누적되어 표시됩니다. > BP1=boxplo..
2020. 3. 22.
[R 강의] 37. Box Plot(상자그림) 내부 구조 뜯어보기
도구 R로 푸는 통계 37. Box Plot(상자그림) 내부 구조 뜯어보기 상자그림을 잘 다루기 위해 내부 구조를 이해할 필요가 있습니다. 다음 강의에서는 상자그림 안에 관측치와 표준편차를 입력할 것인데 내부 구조에 대한 이해가 필요합니다. 상자그림을 하나 만들어 봅시다. 옵션을 추가하지 않은 가장 기본적인 형태로 만들겠습니다. > a=c(1,2,3) > b=c(1,2,3,4,5) > c=c(1,2,3,4,5,6,7,8) > BP1=boxplot(a,b,c,names=c("A","B","C")) BP1을 입력해주면 내부 구조를 볼 수 있습니다. boxplot은 리스트 형태로 되어있다는 것을 알 수 있습니다. > BP1 $`stats` [,1] [,2] [,3] [1,] 1.0 1 1.0 [2,] 1.5 ..
2020. 3. 22.
[R 강의] 36. 배열 데이터에 접근하기
도구 R로 푸는 통계 36. 배열 데이터에 접근하기 배열 데이터에 접근하는 방법을 알아봅시다. 1,2차원 배열은 스칼라와 행렬이므로 이미 다뤘습니다. 3차원 배열과 4차원배열을 예를 들어 설명하겠습니다. 1. 3차원 배열 내부 데이터 접근 3차원 배열을 하나 정의합시다. 2행,2열,2층으로 이루어진 배열입니다. > AB=array(1:8,dim=c(2,2,2)) > AB , , 1 [,1] [,2] [1,] 1 3 [2,] 2 4 , , 2 [,1] [,2] [1,] 5 7 [2,] 6 8 위 배열을 아래와 같이 공간에 나타낼 수 있습니다. dim=c(x,y,z) 로 해석한 것입니다. 접근하는 방식은 좌표를 입력해주듯 대괄호 안에 데이터의 위치를 입력해주면 됩니다. > AB[1,1,1] [1] 1 > A..
2020. 3. 22.
[R 강의] 34. 행렬의 결합
도구 R로 푸는 통계34. 행렬의 결합 r에서는 두개 이상의 행렬을 결합하는 함수를 제공합니다. 열 방향으로 결합하는 cbind와 행 방향으로 결합하는 rbind가 있습니다. 1. cbind (열 방향, 가로방향으로 결합) > a=matrix(c(1,2,3),ncol=1)> a [,1][1,] 1[2,] 2[3,] 3> b=matrix(c(4,5,6),ncol=1)> b [,1][1,] 4[2,] 5[3,] 6> c=matrix(c(7,8,9),ncol=1)> c [,1][1,] 7[2,] 8[3,] 9> cbind(a,b,c) [,1] [,2] [,3][1,] 1 4 7[2,] 2 5 8[3,] 3 6 9 2. rbind (행방향, 세로방향 결합) > a=matrix(c(1,2,3),nrow=1)> a..
2020. 3. 21.
[R 강의] 33. 행렬의 행과 열에 이름 붙이는 방법
도구 R로 푸는 통계33. 행렬의 행과 열에 이름 붙이는 방법 행렬에 이름을 붙이는 방법은 두 가지가 있습니다. 행렬 함수 안에 이름을 정의하는 방법은 27강에서 배웠습니다. 오늘은 이미 정의한 행렬에 이름을 붙이는 방법을 알아봅시다. 먼저 행렬을 하나 정의합시다. > A=matrix(c(1,2,3,4,5,6),ncol=2)> A [,1] [,2][1,] 1 4[2,] 2 5[3,] 3 6 rownames 함수를 사용하면 '행'의 이름을 붙여줄 수 있습니다. > rownames(A)=c("RN1","RN2","RN3")> A [,1] [,2]RN1 1 4RN2 2 5RN3 3 6 colnames 함수를 사용하면 '열'의 이름을 붙여줄 수 있습니다. > A CN1 CN2RN1 1 4RN2 2 5RN3 3 ..
2020. 3. 21.
[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 강의] 26. 산점도(scatter plot) 그리기, 꾸미기
도구 R로 푸는 통계 26. 산점도(scatter plot) 그리기, 꾸미기 1. 산점도 그리기 산점도(scatter plot)는 좌표평면에 점이 그려진 그래프입니다. x,y축에 해당되는 두 변수 사이의 관계를 나타내는데 사용됩니다. 함수는 plot() 이구요. 먼저 점을 하나 찍어봅시다. > plot(1,2) plot 함수에서 첫번째 입력된 수를 x로, 두번재 입력된 수를 y로 인식하고 그려준다는 것을 알 수 있습니다. 벡터형태로 여러개의 점을 찍을 수도 있습니다. > plot(c(1,2,3),c(1.2,1.4,1.6)) 변수를 정의해서 입력할 수도 있습니다. > x=c(1,2,3) > y=c(1.2,1.4,1.6) > plot(x,y) 2. 산점도 꾸미기 추가 옵션을 이용하여 산점도를 꾸밀 수 있습니..
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 강의] 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 강의] 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.