[R강의] 144.정규분포 함수 4종류 의미 (dnorm, pnorm, qnorm, rnorm)
R에서 제공하는 정규분포 함수는 네 종류가 있습니다. 함수 이름과 입력값은 아래와 같습니다. dnorm(x, mean = 0, sd = 1, log = FALSE) pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE) rnorm(n, mean = 0, sd = 1) 하나씩 의미를 알아봅시다. dnorm dnorm 의 d는 density 입니다. dnorm 은 확률밀도함수를 의미합니다. x에서의 확률밀도값을 반환합니다. 종 모양의 정규분포함수에서 y값에 해당됩니다. pnorm pnorm 의 p는 probability 입니다. 누적확률을 의미합니..
2023. 3. 20.
[R강의] 140. 데이터 프레임을 쉽게 조작하는 transform 함수
데이터프레임을 하나 정의합시다. num=1:10 score=c(78,62,65,94,71,97,57,83,71,96) md=data.frame(num,score) > md num score 1 1 78 2 2 62 3 3 65 4 4 94 5 5 71 6 6 97 7 7 57 8 8 83 9 9 71 10 10 96 둘째 열에 5를 더해서 셋째 열을 추가하는 상황을 가정합시다. 아래와 같이 인덱싱을 이용하여 추가할 수 있습니다. > md[,'add']=md$score+5 > md num score add 1 1 78 83 2 2 62 67 3 3 65 70 4 4 94 99 5 5 71 76 6 6 97 102 7 7 57 62 8 8 83 88 9 9 71 76 10 10 96 101 이번에는 tran..
2023. 2. 27.
[R강의] 139. 데이터프레임 열이름, 행이름 출력하고 수정하기
데이터프레임을 하나 정의합시다. A=c(1,2,3) B=c(4,5,6) C=c(7,8,9) df=data.frame(A,B,C) > df A B C 1 1 4 7 2 2 5 8 3 3 6 9 열 이름은 names 함수로 가져옵니다. > names(df) [1] "A" "B" "C" 행이름은 rownames 로 가져옵니다. > rownames(df) [1] "1" "2" "3" 열 이름과 행 이름을 수정하는 방법은 아래와 같습니다. names(df)=c('C1','C2','C3') rownames(df)=c('R1','R2','R3') > df C1 C2 C3 R1 1 4 7 R2 2 5 8 R3 3 6 9
2023. 2. 3.
[R강의] 138. 데이터프레임 행 추가할 때 리스트를 사용해야하는 이유
데이터프레임에 행을 추가할 때 왜 리스트를 사용해야 하는지 이야기해보려고 합니다. 먼저 데이터프레임을 하나 정의하겠습니다. name=c('KYS','OJH','PSK') gender=c('M','F','M') height=c(182,165,177) df=data.frame(name,gender,height,stringsAsFactors=FALSE) > df name gender height 1 KYS M 182 2 OJH F 165 3 PSK M 177 1열은 이름, 2열은 성별, 3열은 키입니다. 사람 한명의 정보를 더 추가하고 싶은 상황입니다. 가장 쉽게 떠오르는 방법은 인덱싱을 통해 추가하는 것입니다. 아래와 같이 추가할 수 있습니다. > df[4,]=c('CYR','F',163) > df name..
2023. 1. 31.
[R강의] 137. 데이터프레임 결합의 끝판왕 (merge)
merge 함수는 두 데이터프레임을 합쳐주는 함수입니다. rbind 보다는 cbind 와 유사한데요. cbind와 구벌되는 점은 특정 열을 기준으로 하여 합친다는 것입니다. 총 네가지 방법이 있는데요. 그림을 보면 쉽게 이해가 되실겁니다. 데이터프레임을 가지고 직접 해봅시다. 사용할 두 데이터는 아래와 같습니다. A=data.frame(id=c(1,2,3),weight=c(78,88,98),height=c(170,175,180)) B=data.frame(id=c(2,3,4),math=c(75,85,85),eng=c(100,85,60)) 콘솔창에 입력해보면 아래와 같습니다. > A id weight height 1 1 78 170 2 2 88 175 3 3 98 180 > B id math eng 1 2 ..
2023. 1. 31.
[R강의] 136. rbind로 데이터프레임들 결합할 때, 구분하는 열 추가하기
데이터프레임을 두개 만들어봅시다. 하나는 남자의 키와 몸무게이고, 하나는 여자의 키와 몸무게 입니다. weight=c(78,88,98) height=c(170,175,180) male_df=data.frame(weight,height) weight=c(48,58,68) height=c(150,160,170) female_df=data.frame(weight,height) 우리는 두 데이터프레임을 합치고 싶은 상태인데요. 데이터프레임이 합쳐진 후에도 남녀를 구분하고 싶습니다. 각 데이터프레임에 열을 하나씩 추가합시다. 아래와 같이 입력합니다. male_df['gender']='M' female_df['gender']='F' 각 데이터프레임은 아래와 같이 변했습니다. > male_df weight heigh..
2023. 1. 31.
[R강의] 135. 데이터프레임을 열로 결합하기 (cbind)
데이터프레임을 열로 결합하는 방법을 알아봅시다. 열로 결합한다는 것은 아래와 같은 결합을 뜻합니다. 이때 cbind 함수가 사용됩니다. cbind 는 column(열) 을 bind(결합하다) 를 의미합니다. cbind 를 사용하려면 합치려는 데이터프레임들의 '행 개수'가 같아야 합니다. 아래와 같은 데이터프레임이 있다고 합시다. A 반 학생 세명의 번호, 몸무게, 키입니다. A=data.frame(id=c(1,2,3), weight=c(78,88,98), height=c(170,175,180)) > A id weight HEight 1 1 78 170 2 2 88 175 3 3 98 180 아래와 같이 학생들의 수학,영어 점수를 추가로 조사하였다고 합시다. A2=data.frame(math=c(75,80..
2023. 1. 25.
[R강의] 134. 데이터프레임 열이름이 다른 경우 rbind 적용하기
rbind 함수는 데이터프레임들의 행을 결합하는 함수입니다. 데이터프레임들의 열 이름이 같아야 사용이 가능합니다. 변수 종류는 같은데 열 이름이 다르게 쓰여진 경우에 rbind 함수를 적용하는 방법을 알아봅시다. 아래와 같은 두 데이터프레임이 있습니다. A=data.frame(id=c(1,2,3), weight=c(78,88,98), HEight=c(170,175,180)) B=data.frame(id=c(4,5,6), weight=c(58,68,78), height=c(140,155,160)) > A id weight HEight 1 1 78 170 2 2 88 175 3 3 98 180 > B id weight height 1 4 58 140 2 5 68 155 열 이름이 달라서 rbind 함수 적용..
2023. 1. 25.
[R강의] 133. 데이터프레임을 행으로 결합하기 (rbind)
데이터프레임을 행으로 결합하는 방법을 알아봅시다. 행으로 결합한다는 것은 아래와 같은 결합을 뜻합니다. 이때 rbind 함수가 사용됩니다. rbind 는 row(행) 을 bind(결합하다) 를 의미합니다. rbind 를 사용하려면 합치려는 데이터프레임들의 '열 이름'이 같아야 합니다. R코드로 예를 들어봅시다. 두개의 데이터 프레임을 생성합시다. A=data.frame(id=c(1,2,3), weight=c(78,88,98), height=c(170,175,180)) B=data.frame(id=c(4,5,6), weight=c(58,68,78), height=c(140,155,160)) 콘솔창에 출력해보면 아래와 같습니다. > A id weight height 1 1 78 170 2 2 88 175 3..
2023. 1. 24.
[R강의] 132. 여러 점들 사이의 거리 한번에 구하는 법 (dist함수)
아래와 같이 5개의 점이 있다고 합시다. P1=c(1,2,3) P2=c(3,5,2) P3=c(5,5,4) P4=c(1,4,7) P5=c(2,2,4) 이들 중 어느 두 점이 가장 가까운 거리에 있는지 알고 싶은 상황입니다. 유클리드 거리를 행렬 형태로 출력해주는 함수가 있습니다. dist 함수입니다. 먼저 위 점들을 하나의 행렬로 묶어줍니다. mat1=matrix(c(P1,P2,P3,P4,P5),byrow=TRUE,nrow=5) > mat1 [,1] [,2] [,3] [1,] 1 2 3 [2,] 3 5 2 [3,] 5 5 4 [4,] 1 4 7 [5,] 2 2 4 위에서 만든 행렬에 dist 함수를 적용해봅시다. > dist(mat1) 1 2 3 4 2 3.741657 3 5.099020 2.828427 ..
2022. 12. 23.
[R강의] 131. 연속형 변수를 구간에 따라 범주형 변수로 바꾸는 방법
점수를 학점으로 바꿔봅시다. 바꾸는 기준은 아래와 같습니다. 점수는 연속형 변수이고, 학점은 범주형 변수입니다. R에는 위와 같이 범위로 표현된 연속형 변수를 범주형 변수로 바꿔주는 함수가 있습니다. cut 함수를 사용합니다. 먼저 데이터를 생성합시다. 10명의 점수를 생성하겠습니다. num은 번호이고 score 은 점수입니다. #데이터 생성 num=1:10 score=c(78,62,65,94,71,97,57,83,71,100) md=data.frame(num,score) > md num score 1 1 78 2 2 62 3 3 65 4 4 94 5 5 71 6 6 97 7 7 57 8 8 83 9 9 71 10 10 100 cut 함수는 아래와 같이 사용합니다. #점수를 학점으로 변환 gpa=cut(..
2022. 12. 23.
[R 코딩 연습문제] 누적분포 그래프 그리기
(R 코딩실력 향상을 위한 연습문제입니다.) Question 아래 데이터의 누적분포 그래프를 그리시오. 1,2,7,8,10,11,13,15,17,19 Answer data=c(1,2,7,8,10,11,13,15,17,19) cd=1:length(data)/length(data) plot(data,cd)
2022. 5. 13.
[R강의] 999. 평균절대편차, 중앙값절대편차 구하는 법
1) 중앙값 절대편차 (median absolute deviation, mad) mad 함수 사용 > dt=c(1,2,3,4,50) > mad(dt) [1] 1.4826 2) 평균 절대편차 (average absolute deviation, aad) lsr 패키지 필요 install.packages("lsr") library(lsr) aad 함수 사용 > dt=c(1,2,3,4,50) > aad(dt) [1] 15.2
2022. 4. 30.
[R강의] 130. 데이터프레임 열 인덱싱 결과는 두 가지 입니다.
데이터프레임의 열에 접근할 때, 인덱싱 결과는 두 가지입니다. 하나는 데이터프레임이구요. 다른 하나는 벡터입니다. 우리가 원하는 결과를 의도하고 인덱을 해주어야 하는데요. 방법을 알아봅시다. 먼저 데이터프레임을 하나 정의해봅시다. A=c(5,4,7,6,2,1,3) B=c(1,2,3,4,5,6,7) df=data.frame(A,B) > df A B 1 5 1 2 4 2 3 7 3 4 6 4 5 2 5 6 1 6 7 3 7 첫번째 열에 접근하다고 할 때, 결과가 데이터프레임인 경우는 아래와 같습니다. > df['A'] A 1 5 2 4 3 7 4 6 5 2 6 1 7 3 > df[1] A 1 5 2 4 3 7 4 6 5 2 6 1 7 3 열의 이름을 사용하거나 열 번호를 사용하면 되는데요. 행을 명시하지 않..
2022. 4. 2.
[R강의] 134. 여러 점들 사이의 코사인 거리 한번에 구하는 법 (dist함수)
아래와 같이 5개의 점이 있다고 합시다. P1=c(1,2,3) P2=c(3,5,2) P3=c(5,5,4) P4=c(1,4,7) P5=c(2,2,4) 이들 중 어느 두 점이 가장 가까운 거리에 있는지 알고 싶은 상황입니다. 일반적으로 알고 있는 유클리드 거리가 아닌 코사인 거리를 행렬 형태로 출력해보겠습니다. 코사인 각도는 원점과 각 점을 잇는 벡터들 사이 각도의 코사인 값입니다. 먼저 위 점들을 하나의 행렬로 묶어줍니다. mat1=matrix(c(P1,P2,P3,P4,P5),byrow=TRUE,nrow=5) > mat1 [,1] [,2] [,3] [1,] 1 2 3 [2,] 3 5 2 [3,] 5 5 4 [4,] 1 4 7 [5,] 2 2 4 코사인 거리를 계산할 때는 dist 함수에서 method 를 ..
2022. 2. 19.