[R강의] 173. 데이터프레임 인덱싱에서 df[3, ] 와 df['3', ] 의 차이
아래 두 인덱싱을 봅시다. df[3, ] df['3', ] 세번째 행을 인덱싱한다는 의미로 두 코드가 같아 보이지만 전혀 다른 코드입니다. df[3, ] 는 세번째 행을 인덱싱한다는 의미이고, df['3', ] 는 이름이 3인 행을 인덱싱한다는 의미입니다. 일반적으로는 세번쨰 행의 이름이 3이기 때문에 결과가 같지만, 행 이름이 달라지는 경우에는 위 두 코드를 구분해주어야 합니다. 아래와 같은 데이터프레임이 있다고 합시다. id=c('A','B','C','D','E') height=c(156,176,167,189,196) weight=c(65,77,84,67,75) df=data.frame(id,height,weight) 행 이름을 아래와 같이 바꾸겠습니다. rownames(df)=c(3,2,1,4,5)..
2023. 8. 29.
[R강의] 170. 산점도 점에 좌표와 점이름 출력하는 방법 (bquote)
먼저 산점도를 하나 그려봅시다. x=c(1,2,4,4,1) y=c(1,3,6,2,1) plot(x,y,xlim=c(0,5),ylim=c(0,6)) 각 점의 좌표를 먼저 화면에 출력해봅시다. x=c(1,2,4,4,1) y=c(1,3,6,2,1) plot(x,y,xlim=c(0,5),ylim=c(0,6)) for (i in 1:length(x)){ text(x[i],y[i],labels=paste0('(',x[i],',',y[i],')'),pos=1,cex=0.8) } 각 점의 이름을 순서 대로 P1부터 이름을 붙이겠습니다. $P_1(1,1)$ 과 같은 형태로 출력해봅시다. bquote 에서 ~은 한칸을 띄우고 연결하는 것이고, *은 공백 없이 연결한다는 뜻입니다. 변수를 입력할 때는 .(변수)형태로 입력하..
2023. 8. 29.
[R강의] 168. 그래프에 아래첨자,위첨자 넣는 방법 (exprssion)
아래와 같이 이차함수의 그래프를 하나 그려줍니다. x=seq(-4,4,0.01) y=x^2 plot(x,y,type='l') 그래프 제목을 $y=x^2$으로 하고 싶은 상황입니다. 위첨자를 넣어야 합니다. 위첨자는 아래와 같이 넣어줄 수 있습니다. x=seq(-4,4,0.01) y=x^2 plot(x,y,type='l',main=expression(y==x^2)) 아래첨자는 아래와 같이 넣습니다. x=seq(-4,4,0.01) y=x^2 plot(x,y,type='l',main=expression(y==x[2]))
2023. 8. 29.
[R강의] 165. 데이터프레임의 특정 열을 기준으로 결측치를 제거하는 방법
데이터프레임을 하나 만들어봅시다. v1=c(1,2,NA,4,NA) v2=c(10,20,NA,NA,50) df=data.frame(v1,v2) > df v1 v2 1 1 10 2 2 20 3 NA NA 4 4 NA 5 NA 50 결측치를 제거할 건데요. NA가 포함된 모든 행을 제거하는 방법은 간단합니다. na.omit 함수를 적용하면 됩니다. > na.omit(df) v1 v2 1 1 10 2 2 20 오늘 우리가 하고 싶은 것은 이게 아닙니다. 특정 열을 기준으로 결측치를 제거하고 싶습니다. 예를 들어 1열을 기준으로 결측치를 제거하면 3,5행만 제거되는 것입니다. 1열을 기준으로 결측치를 제거하는 방법을 알아봅시다. 먼저 1열의 원소들이 NA인지 여부를 논리값으로 출력해봅시다. > is.na(df$v..
2023. 8. 29.
[R강의] 164. 데이터프레임의 결측치 위치를 알려주는 함수 만들어보기
아래와 같은 데이터프레임이 있다고 합시다. v1=c(NA,2,3,4,NA) v2=c(10,20,NA,NA,50) df=data.frame(v1,v2) > df v1 v2 1 NA 10 2 2 20 3 3 NA 4 4 NA 5 NA 50 긱 원소의 결측치 여부를 확인하는 것은 is.na 로 가능합니다. > is.na(df) v1 v2 [1,] TRUE FALSE [2,] FALSE FALSE [3,] FALSE TRUE [4,] FALSE TRUE [5,] TRUE FALSE 오늘 하고 싶은 것은 결측치의 위치를 출력해주는 함수를 만드는 것입니다. 위 데이터 프레임을 예로 들면 아래와 같이 출력되는 것입니다. 1,1 3,2 4,2 5,1 함수를 만들기 전에 먼저 데이터프레임의 NA 위치를 출력해주는 코드를..
2023. 8. 29.
[R강의] 148. with 함수와 그래프 (열이름을 표현식에 사용)
with 함수란? with 함수가 무엇인지 알아보고, with 함수를 그래프와 어떻게 함께 사용되는지도 알아봅시다. with 함수의 기본적인 형태는 아래와 같습니다. with(data,표현식) data에는 데이터프레임이나 리스트가 올 수 있습니다. with 함수는 데이터프레임에 있는 열 이름을 표현식에 바로 사용할 수 있게 해주는 함수입니다. with 함수를 사용하기 위해 아래와 같은 데이터프레임을 하나 정의해봅시다. df=data.frame(A=c(1,2,3),B=c(4,5,6),C=c(7,8,9)) > df A B C 1 1 4 7 2 2 5 8 3 3 6 9 아래와 같이 코드를 입력해봅시다. 어떤 결과가 출력될까요? with(df, A) A가 출력됩니다. > with(df,A) [1] 1 2 3 벡..
2023. 3. 28.
[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강의] 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강의] 116. 01,02,03,.. 형태의 벡터 만드는 방법
01,02,03,04...와 같은 벡터를 만드는 방법입니다. sprintf 함수를 사용합니다. sprintf 함수는 포멧팅 방식을 설정할 수 있습니다. sprintf(포멧팅 방식, 인자) ex) 01~50 까지의 벡터를 01,02,03...으로 출력 > num=sprintf("%02d", 1:50) > num [1] "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" [20] "20" "21" "22" "23" "24" "25" "26" "27" "28" "29" "30" "31" "32" "33" "34" "35" "36" "37" "38" [39] "39" "40" "41" "42" ..
2021. 6. 28.
[R강의] 114. 여러 그래프의 제목과 축이름 글자 크기 한번에 바꾸는법
아래와 같이 세개의 그래프를 그렸다고 합시다. par(mfrow=c(1,3)) x=seq(-4,4,0.01) y=dnorm(x) plot(x,y,type='l',main="확률밀도함수 PDF",xlab="X",ylab="f(X)") x=seq(-4,4,0.01) y=pnorm(x) plot(x,y,type='l',main="누적분포함수 CDF",xlab="X",ylab="cumulative P") x=seq(0,1,0.01) y=qnorm(x) plot(x,y,type='l',main="역누적분포함수",xlab="cumulative P",ylab="X") 글자 크기를 바꾸려면 각 plot 내부에 cex 옵션을 정의해야 하는데 번거롭습니다. par 함수를 이용하면 한번에 바꿀 수 있습니다. par(mfro..
2021. 6. 11.
R의 lapply 함수(리스트에 원하는 함수를 원하는 방향으로 적용)
lapply 함수는 리스트에 원하는 함수를 카테고리마다 적용해줍니다. 예를들어봅시다. 아래와 같은 데이터가 있습니다. 어떤 반의 인원이 다섯명이고, 다섯사람이 세과목의 시험을 본 결과 데이터입니다. > Math=c(94,82,45,55,67) > English=c(88,86,56,90,50) > Science=c(87,76,65,43,55) 리스트에 넣었습니다. > Li1=list(Math=Math,English=English,Science=Science) > Li1 $Math [1] 94 82 45 55 67 $English [1] 88 86 56 90 50 $Science [1] 87 76 65 43 55 laaply 함수를 적용해봅시다. 각 카테고리별로 평균이 구해지고, 결과가 리스트 형태로 출력됩..
2021. 3. 18.
R의 apply 함수(함수를 배열에 원하는 방향으로 적용)
apply 함수는 벡터,행렬,배열에 원하는 함수를 원하는 방향으로 적용해줍니다. 예를들어봅시다. 아래와 같은 데이터가 있습니다. 어떤 반의 인원이 다섯명이고, 다섯사람이 세과목의 시험을 본 결과 데이터입니다. > Math=c(94,82,45,55,67) > English=c(88,86,56,90,50) > Science=c(87,76,65,43,55) 데이터프레임에 넣었습니다. > DF1=data.frame(Math,English,Science) > DF1 Math English Science 1 94 88 87 2 82 86 76 3 45 56 65 4 55 90 43 5 67 50 55 apply 함수를 적용해봅시다. apply함수는 아래와 같은 형식으로 입력합니다. apply(데이터, 방향, 함수)..
2021. 3. 18.
[R강의] 105. attr 이 무엇인가요?
R을 사용하다 보면 attr 을 보게될 때가 있습니다. 예를들어 x라는 벡터에 scale 함수를 적용하면, 결과 데이터 이외에 아래 sttr 이라는 내용이 출력됩니다. > x=1:5 > scale(x) [,1] [1,] -1.2649111 [2,] -0.6324555 [3,] 0.0000000 [4,] 0.6324555 [5,] 1.2649111 attr(,"scaled:center") [1] 3 attr(,"scaled:scale") [1] 1.581139 attr 는 attribute 의 약어입니다. 속성이라는 뜻입니다. 변수에 속성을 지정할 수가 있는데요. 그럴 경우 입력되는 정보입니다. 벡터를 하나 정의하고 속성을 입력해보겠습니다. v1=c(1,2,3,4,5) attr을 입력할건데요. 입력하는 방..
2020. 10. 3.