[R강의] 162. 데이터프레임 특정 열을 기준으로 오름차순, 내림차순 정렬하기
데이터프레임을 오름차순 또는 내림차순으로 정렬할 때는 order 라는 함수가 사용됩니다. 먼저 order 함수를 이해해봅시다. 1. order 함수와 벡터의 오름차순,내림차순 정렬 아래와 같이 벡터를 두개 정의합시다. v1=c(1,2,1,3,2) v2=c(20,10,10,10,30) v1에 order 함수를 적용해봅시다. > order(v1) [1] 1 3 2 5 4 v1을 오름차순 정렬 했을 때, 각 원소가 몇번 째 오게 되는지를 반환합니다. 만약 order(v1)의 결과를 아래와 같이 인덱스로 사용한다면, 오름차순으로 정렬하는 효과를 얻습니다. > v1[order(v1)] [1] 1 1 2 2 3 내림차순 정렬은 아래와 같이 하면 됩니다. > v1[order(v1,decreasing=TRUE)] [1..
2023. 8. 29.
[하루만에 끝내는 R 데이터프레임] 7. 데이터프레임 행 또는 열 제거, 추가, 변경하기
이번 시간에는 데이터프레임의 행 또는 열 제거, 추가, 변경하는 방법을 배워봅시다. 1교시. 강의 소개 2교시. 데이터프레임 정의하고 행이름, 열이름 바꾸기 3교시. 유용한 기본함수 (tail, head, str, dim) 4교시. 벡터의 인덱싱 5교시. 데이터 프레임 원소에 접근하기 (데이터프레임 인덱싱) 6교시. 데이터프레임 행과 열에 접근하기 (데이터프레임 열/행 인덱싱) 7교시. 데이터프레임 행 또는 열 제거, 추가, 변경하기 8교시. 특정 조건으로 데이터프레임 추리기 9교시. 여러 데이터프레임 결합하기 10교시. 엑셀파일을 데이터프레임으로 불러오기 먼저 데이터프레임을 하나 정의하겠습니다. 학생들의 정보를 담고 있는 데이터프레임입니다. df df[-1,] name age grade 2 Emma 1..
2023. 7. 10.
[하루만에 끝내는 R 데이터프레임] 3. 유용한 기본함수 (tail, head, str, dim)
이번시간에는 데이터프레임에 사용하는 유용한 함수를 알아봅시다. 1교시. 강의 소개 2교시. 데이터프레임 정의하고 행이름, 열이름 바꾸기 3교시. 유용한 기본함수 (tail, head, str, dim) 4교시. 벡터의 인덱싱 5교시. 데이터 프레임 원소에 접근하기 (데이터프레임 인덱싱) 6교시. 데이터프레임 열과 행에 접근하기 7교시. 데이터프레임 행 또는 열 제거, 추가, 변경하기 8교시. 특정 조건으로 데이터프레임 추리기 9교시. 여러 데이터프레임 결합하기 10교시. 엑셀파일을 데이터프레임으로 불러오기 네 가지 함수를 배워볼 건데요. tail, haed, str, dim 입니다. 간단한 설명은 아래와 같습니다. tail : 데이터프레임의 앞부분 출력 head : 데이터프레임 뒷부분 출력 str : 데..
2023. 6. 2.
[R강의] 155. 데이터프레임의 여러 열을 합쳐서 변수와 값으로 만들기 (melt)
데이터프레임의 여러 열을 합쳐서 변수와 값으로 만드는 방법을 알아봅시다. 말이 좀 어렵죠? 그림으로도 준비했습니다. 왼쪽 데이터는 다섯 학생의 성별과 시험성적입니다. 네 과목의 시험성적인데요. 오른쪽 처럼 과목이라는 열과 점수라는 열로 바꿔보겠습니다. 오른쪽 처럼 바꾸면 데이터를 다루기가 편해집니다. 먼저 패키지를 하나 설치하고 불러옵시다. reshape2 라는 패키지입니다. 이 패키지 안에 있는 melt 함수를 사용할 겁니다. #패키지 설치 install.packages("reshape2") #패키지 불러오기 library(reshape2) 아래와 같이 데이터를 입력합시다. ID=c(1,2,3,4,5) SEX=c('M','M','F','F','F') ENG=c(65,55,45,95,78) MATH=c(..
2023. 4. 15.
[R강의] 150. 데이터프레임의 열 방향으로 함수 적용하기 (apply, sapply, lapply)
데이터프레임의 열 방향으로 함수를 적용하는 방법은 무려 세가지가 있습니다. apply,sapply,lapply 입니다. 이들의 차이점은 결과를 출력하는 방식입니다. apply와 sapply 는 벡터나 행렬 형태로 결과로 출력하고 laaply 는 리스트 형태로 결과를 출력합니다. 복잡해 보이지만 예제를 통해 쉽게 이해할 수 있습니다. 먼저 데이터프레임을 하나 정의해봅시다. Math=c(94,82,45,55,67) English=c(88,86,56,90,50) Science=c(87,76,65,43,55) df=data.frame(Math,English,Science) > df Math English Science 1 94 88 87 2 82 86 76 3 45 56 65 4 55 90 43 5 67 50 ..
2023. 4. 3.
[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강의] 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강의] 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에서 데이터프레임을 만드는 네가지 방법 (자주쓰는 방법들)
R에서 데이터프레임을 만드는 네가지 방법입니다. 제가 자주 사용하는 방법을 정리한 것입니다. 1. 열백터로 데이터프레임 만들기 name=c('kys','ojh','psk') gender=c('M','F','M') height=c(182,165,177) df=data.frame(name,gender,height) > df name gender height 1 kys M 182 2 ojh F 165 3 psk M 177 2. 데이터프레임에 열 추가하기 name=c('kys','ojh','psk') gender=c('M','F','M') height=c(182,165,177) df=data.frame(name,gender,height) df['age']=c(18,22,32) > df name gender he..
2022. 3. 29.