[R 강의] 86. 결측치(NA) 확인, 제거, 수정하는 방법
도구 R로 푸는 통계 86. 결측치(NA) 확인, 제거, 수정하는 방법 오늘 사용할 데이터입니다. C1=c(1,2,NA,NA,5) C2=(1,2,3,4,5) C3=(NA,2,3,4,5) md=data.frame(C1,C2,C3) > md C1 C2 C3 1 1 1 NA 2 2 2 2 3 NA 3 3 4 NA 4 4 5 5 5 5 1) 결측치 확인 결측치를 확인할 때는 is.na( ) 함수를 사용합니다. 위 데이터프레임에 적용해봅시다. C1=c(1,2,NA,NA,5) C2=(1,2,3,4,5) C3=(NA,2,3,4,5) md=data.frame(C1,C2,C3) > is.na(md) C1 C2 C3 [1,] FALSE FALSE TRUE [2,] FALSE FALSE FALSE [3,] TRUE FALS..
2020. 5. 15.
[R 강의] 84. 행렬의 곱셈
도구 R로 푸는 통계 84. 행렬의 곱셈 2행2열짜리 행렬을 두개 정의합시다. m1=matrix(c(1,2,3,4),nrow=2) m2=matrix(c(1,2,3,4),nrow=2) > m1 [,1] [,2] [1,] 1 3 [2,] 2 4 > m2 [,1] [,2] [1,] 1 3 [2,] 2 4 먼저 곱셈 기호를 사용해서 곱해봅시다. > m1*m2 [,1] [,2] [1,] 1 9 [2,] 4 16 행렬곱의 결과가 아닙니다. 같은 위치에 있는 값끼리 곱해준 결과입니다. 행렬곱은 아래와 같은 연산자를 사용합니다. %*% 이 연산자를 이용하여 곱셈을 해봅시다. > m1%*%m2 [,1] [,2] [1,] 7 15 [2,] 10 22 이번에는 크기가 다른 두 행렬을 정의합시다. m1=matrix(c(1,2..
2020. 4. 4.
[R 강의] 83. 행렬 또는 데이터프레임의 행과 열을 바꾸는 방법 t()
도구 R로 푸는 통계 83. 행렬 또는 데이터프레임의 행과 열을 바꾸는 방법 t() t()함수를 이용하면 행렬이나 데이터프레임의 행과 열을 바꿀 수 있습니다. 행과열을 바꾼다는 것을 예를들면 2행1열에 있던 값과 1행2열에 있는 값의 자리를 바꾸는 것입니다. 이렇게 모든 쌍의 자리를 서로 바꿔줍니다. 선형대수학에서는 '전치행렬(transposed matrix)'이라고 합니다. 1. 행렬에 t() 적용하기 행렬을 정의하고 행과 열을 바꿔봅시다. 아래와 같이 2행2열로 된 행렬을 정의했습니다. > M1=matrix(c(1,2,3,4,5,6),nrow=2) > M1 [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 정의한 행렬에 t() 함수를 적용해봅시다. > t(M1) [,1] [,2] [1..
2020. 4. 2.
[R 강의] 78. match.arg 함수
도구 R로 푸는 통계 78. match.arg 함수 match.arg 함수는 첫번째 문자형 벡터의 인수(argument)가 두번째 벡터의 인수에 있을 때, 그 값을 반환해줍니다. 문자형벡터만 가능합니다. 아래와 같은 기본형을 갖습니다. match.arg(arg, choices, several.ok = FALSE) > match.arg('a',c('a','b','c')) [1] "a" 앞글자가 같아도 반환해줍니다. > match.arg('a',c('apple','banana','chicken')) [1] "apple" > match.arg('ap',c('apple','banana','chicken')) [1] "apple" > match.arg('app',c('apple','banana','chicken'..
2020. 4. 1.
[R 강의] 77. match 함수
도구 R로 푸는 통계 77. match 함수 match 함수는 첫번째 벡터의 인수(argument)가 두번째 벡터의 인수의 몇번째에 있는지를 알려줍니다. 없는 경우는 NA를 반환합니다. > a=c(1,2,3,4,5) > b=c(2,5,7,8,9) > match(a,b) [1] NA 1 NA NA 2 1은 b에 없기 때문에 NA가 반환되고, 2는 b의 첫번째 원소이므로 1이 반환되는 것입니다. 반환되는 NA 값을 바꿀 수도 있습니다 . > match(a,b,nomatch=0) [1] 0 1 0 0 2 문자로는 반환할 수 없습니다. > match(a,b,nomatch="a") [1] NA 1 NA NA 2 경고메시지(들): In match(a, b, nomatch = "a") : 강제형변환에 의해 생성 영상..
2020. 4. 1.
[R 강의] 76. table 함수는 분할표를 만든다
도구 R로 푸는 통계 76. table 함수는 분할표를 만든다 table 함수는 '분할표'를 출력해주는 함수입니다. 예시를 통해 분할표가 무엇인지 이해해봅시다. 5명의 남성과 4명의 여성을 대상으로 종교를 조사했습니다. 남자를 M, 여자를 F라는 약어로 표기하였습니다. 기독교는 Ch, 이슬람은 I, 카톨릭은 Ca, 불교는 B, 무교는 N으로 표기하였습니다. 번호 성별 종교 1 M Ch 2 F I 3 M N 4 M B 5 F N 6 M Ch 7 F Ca 8 M B 9 F N 위 데이터를 벡터에 저장합시다. > gender=c('M','F','M','M','F','M','F','M','F') > religion=c('Ch','I','N','B','N','Ch','Ca','B','N') 결과를 출력하면 아래와..
2020. 4. 1.
[R 강의] 72. 여러 데이터의 산점도를 하나의 그래프에 그리기(points 함수)
도구 R로 푸는 통계 72. 여러 데이터의 산점도를 하나의 그래프에 그리기 (points 함수) 서로 다른 데이터를 하나의 그래프에 그려야하는 경우가 있습니다. 예를들어 A반 학생과 B반 학생의 수학,영어 점수 분포를 한눈에 비교하고 싶은 상황을 가정해봅시다. A반 학생 5명의 수학점수와 영어점수는 아래와 같습니다. A반(수학점수, 영어점수) 1. 93,82 2. 77,63 3. 59, 90 4. 75, 69 5. 100, 98 B반(수학점수, 영어점수) 1. 57,33 2. 98,75 3. 66, 68 4. 30, 26 5. 100, 100 먼저 '비어있는'그래프를 하나 그리겠습니다. plot함수의 데이터 자리에는 전체 구간을 입력해줍니다. 시험점수니까 0점부터 100점 사이 값을 가질 것입니다. 따라..
2020. 3. 31.
[R 강의] 71. 산점도에서 점의 색 서로 다르게 설정하기
도구 R로 푸는 통계 71. 산점도에서 점의 색 서로 다르게 설정하기 먼저 산점도를 하나 그려봅시다. x=c(1,2,3,4,5,6) y=c(1,2,3,4,5,6) plot(x,y) 산점도의 색을 바꿔봅시다. col 옵션을 사용합니다. x=c(1,2,3,4,5,6) y=c(1,2,3,4,5,6) plot(x,y,col='red') 산점도에 색을 바꾸긴 했는데, 점마다 다른 색을 입력하고 싶은 상황입니다. 첫 두점은 빨간색, 나머지 네 점은 파란색으로 입력하려고 합니다. 이때는 col 옵션에 원소가 색으로 이루어진 벡터를 입력해주면 됩니다. x=c(1,2,3,4,5,6) y=c(1,2,3,4,5,6) plot(x,y,col=c('red','red','blue','blue','blue','blue')) 만약 ..
2020. 3. 31.
[R 강의] 70. 파이그래프에 범례(legend) 추가하기
도구 R로 푸는 통계 70. 파이그래프에 범례(legend) 추가하기 68강에서 그렸던 파이그래프를 변형했습니다. 회사 이름을 빼고 퍼센트만 남겼습니다. 회사 이름은 오늘 배울 범례(legend)를 이용해서 나타내겠습니다. data= c(21.6,22.3,16.4,15.7,9.9,14.2) labels=paste(data,'%') mycolor=c(colors()[1],colors()[13],colors()[53],colors()[45],colors()[23],colors()[18]) title=c("Global large-area display market share 2017.1") pie(data,labels,col=mycolor,main=title) 위 그래프에 범례를 추가해봅시다. 회사 이름으로 ..
2020. 3. 30.
[R 강의] 69. 문자열을 연결하는 paste 함수
paste 함수는 우리가 정의한 벡터의 원소에 무언가를 붙이거나 벡터의 원소를 하나로 합쳐주는 기능을 합니다. 설명만 들어서는 감이 안올 수 있으니 간단한 예제부터 시작해봅시다. > a=c(1,2,3,4,5) > paste(a) [1] "1" "2" "3" "4" "5" 아무 조건 없이 paste 함수를 적용하면, 우리가 정의한 벡터가 문자열 벡터로 변경됩니다. as.character 과 동일한 기능을 합니다. 일단 벡터를 문자열로 바꿔야 합치던지 다른 문자를 붙이던지 할 수 있기 때문입니다. 이번에는 모든 원소에 hi 라는 단어를 추가해보겠습니다. > a=c(1,2,3,4,5) > paste(a,"hi") [1] "1 hi" "2 hi" "3 hi" "4 hi" "5 hi" 기능이 이해가 되시나요? 이..
2020. 3. 30.
[R 강의] 67. 산점도 '점'의 모양 25가지
도구 R로 푸는 통계 67. 산점도 '점'의 모양 25가지 산점도를 꾸미는 방법을 이전에 다뤘었는데, 이번 강의에서는 점의 모양을 바꾸는 방법을 더 자세히 다루려고 합니다. 먼저 오늘 강의에 활용할 예시를 하나 만들어봅시다. > x=c(1,2,3)ㅁ > y=c(1,2,3) > plot(x,y) 점의 모양을 바꿔봅시다. 점의 모양은 pch=숫자 로 바꿉니다. cex=숫자 는 점의 크기입니다. 25가지의 모양을 전부 출력해봅시다. par함수를 이용하여 5x5 창을 만들고 for문을 이용하여 출력함수를 코딩하겠습니다. x=c(1,2,3) y=c(1,2,3) par(mfrow=c(5,5)) for (i in 1:25){ plot(x,y,pch=i,cex=3) } 아래와 같은 에러가 출력될 지도 모릅니다. 이때는..
2020. 3. 30.
[R 강의] 66. 산점도 '점'의 색 바꾸기
도구 R로 푸는 통계 66. 산점도 '점'의 색 바꾸기 산점도를 꾸미는 방법을 이전에 다뤘었는데, 이번 강의에서는 색을 바꾸는 방법을 더 자세히 다루려고 합니다. 먼저 오늘 강의에 활용할 예시를 하나 만들어봅시다. > x=c(1,2,3,4,5) > y=c(1,2,3,4,5) > plot(x,y) 점의 색을 바꿔봅시다. 색은 col='이름 or RGB or Hex color code' 옵션을 추가해주면 됩니다. 1. 이름으로 입력하기 점의 색을 이름으로 입력해봅시다. 어떤 색들을 제공하는지 궁금하신 분들은 R에 colors() 라고 입력하시면 색들을 보여줍니다. 3.5.1 버전 기준으로 무려 657가지나 제공합니다. > x=c(1,2,3,4,5) > y=c(1,2,3,4,5) > plot(x,y,col='..
2020. 3. 29.
[R 강의] 65. 균등분포 (uniform distribution)
도구 R로 푸는 통계 65. 균등분포 (uniform distribution) 균등분포는 확률밀도함수 값이 일정한 분포입니다. 균등분포와 관련된 함수는 네 가지가 있습니다. 1. 확률밀도함수 dunif(x, min = 0, max = 1, log = FALSE) 정의역이 0~5인 균등분포에서 3의 확률밀도 값을 구하겠습니다. > dunif(3,0,5) [1] 0.2 이번에는 log를 TRUE로 설정해서 구해보겠습니다. > dunif(3,0,5,log=TRUE) [1] -1.609438 0.2에 로그를 씌운 log(0.2)와 값이 동일합니다. > log(0.2) [1] -1.609438 2. 누적분포함수 punif(x, min = 0, max = 1, lower.tail = TRUE, log.p = FAL..
2020. 3. 29.
[R 강의] 60. 객체의 내부 구조 보는 법 (str)
도구 R로 푸는 통계 60. 객체의 내부 구조 보는 법 (str) str 함수는 structure의 약어입니다. 벡터, 행렬, 리스트, 데이터프레임 등 객체의 '내부구조'를 보여줍니다. 내부를 한 눈에 볼 수 있어서 데이터프레임에 주로 사용됩니다. ex1) 벡터의 내부구조 보기 > a=c(1,2,3,4,5) > str(a) num [1:5] 1 2 3 4 5 ex2) 리스트의 내부구조 보기 > li=list(a=c(1,2,3),b=c("a","b","c")) > str(li) List of 2 $ a: num [1:3] 1 2 3 $ b: chr [1:3] "a" "b" "c" ex3) 데이터프레임의 내부구조 보기 > a=c(1,2,3) > b=c(1+1i,2+2i,3+3i) > c=c("a","b","..
2020. 3. 28.
[R 강의] 58. 데이터프레임 열추가, 행과 열에 이름 붙이기 (data.frame)
도구 R로 푸는 통계 58. 데이터프레임 열추가, 행과 열에 이름 붙이기 (data.frame) 데이터프레임을 하나 만들겠습니다. (데이터 프레임 만들기 : http://hsm-edu.tistory.com/481) 벡터를 먼저 정의하고 데이터프레임을 만들 수도 있지만, 아래와 같이 데이터 프레임 안에 직접 정의할 수도 있습니다. > DF=data.frame(a=c(1,2,3),b=c(1+1i,2+2i,3+3i),c=c("a","b","c")) > DF a b c 1 1 1+1i a 2 2 2+2i b 3 3 3+3i c 1. 데이터프레임에 열 추가하기 열을 추가하는 방법은 아래와 같습니다. d라는 열을 추가해보겠습니다. > DF$d=c(11,22,33) > DF a b c d 1 1 1+1i a 11 2..
2020. 3. 27.