본문 바로가기
R특강/하루만에 끝내는 R 기초

[하루만에 끝내는 R기초] 5교시. 자료구조

by 만다린망고 2022. 11. 11.
반응형

지난시간에는 변수가 무엇인지 배웠습니다. 변수에 원하는 값을 입력해 놓고 사용할 수 있었습니다.

 

목차를 한번 더 꺼내봅시다.

 

1교시) 강의 소개

2교시) R설치, R스튜디오 설치
3교시) 자료형
4교시) 변수
5교시) 자료구조
6교시) 연산자(산술,비교,논리)
7교시) 조건문, 반복문
8교시) 함수, 패키지
9교시) 그래프(박스플롯), t검정
10교시) 단축키 소개 및 전체요약

 

오늘은 자료구조를 배울 것입니다. 먼저 지난시간에 사용한 데이터를 가져옵시다. 

 

김함수/남/35/183/72

박산술/남/27/177/69

이비교/남/42/175/78

송논리/여/33/167/58

최검정/여/25/155/47

유반복/여/47/173/65

 

지난시간에 우리는 사람의 이름을 변수로 입력했습니다. 

 

 

사람 이름 마다 하나씩 변수를 정의하는 것은 굉장히 귀찮은 일이었습니다. 이러한 귀찮음은 자료구조를 이용하면 해결할 수 있습니다. 

 

자료구조는 자료형을 담는 그릇입니다. 자료형을 더 편하게 다룰 수 있도록 도와줍니다. R에는 아래와 같은 다양한 종류의 자료형이 있습니다 .

 

- 벡터

- 행렬

- 배열

- 요인

- 데이터프레임

- 리스트

 

모든 자료구조를 다 배우는 것은 기초 단계에서는 상당히 버거운 일입니다. 본 강의에서는 딱 두가지 자료구조만을 배울 겁니다. 가장 많이 쓰는 두 가지 자료구조입니다. 바로 '벡터'와 '데이터프레임' 입니다. 먼저 벡터부터 배워봅시다. 

 

벡터

벡터는 같은 종류의 자료형을 일렬로 나열해 놓은 것입니다. 위 데이터에는 여섯명의 사람이 등장하는데요. 사람 이름을 벡터로 입력하면 아래와 같습니다. 

 

c('김함수','박산술','이비교','송논리','최검정','유반복')

 

벡터를 생성할 때는 c( ) 라는 함수를 사용합니다. 함수는 나중에 배울 겁니다. 여기서는 c( ) 안에 원하는 값들을 콤마를 이용하여 일렬로 나열한다는 정도만 알면 됩니다. 

 

여섯 사람의 이름이 입력된 벡터를 name 이라는 변수에 저장하면 아래와 같습니다. 

 

 

이제부터는 name 이라는 변수만 입력하면 여섯명의 이름을 언제 어디서든 한번에 가져올 수 있습니다. 자료구조와 변수를 사용하면 얼마나 편해지는지 감이 오시면 좋겠습니다. 아마 어떤 분들은 이름을 잘못 입력하신 분들도 계실겁니다. 김함수를 김한수로 잘못 입력했다고 해봅시다. 콘솔창을 이용하는 경우 한번 입력하면 이미 입력한 코드에 대해서는 수정이 불가능합니다. 수정된 코드를 다시 입력해주어야 합니다. 코드를 어딘가 적어놓고, 수정하면서 실행도 해보면 참 좋을 것 같은데요. 그 기능이 콘솔창 바로 위에 있는 스크립트 창입니다. 

 

스크립트 창에 아래와 같이 적어봅시다. 

 

 

Run 버튼을 누르면 코드가 콘솔창에 실행됩니다. 잘못 입력한 부분이 있으면 스크립트창에서 수정하고 다시 Run 을 누르기만 하면 됩니다. 참 편하죠? 

 

데이터를 다시 가져옵시다. 

 

김함수/남/35/183/72

박산술/남/27/177/69

이비교/남/42/175/78

송논리/여/33/167/58

최검정/여/25/155/47

유반복/여/47/173/65

 

스크립트 창에서 name, gender, age, height, weight 라는 변수에 위 데이터를 입력해봅시다. 

 

 

입력이 귀찮은 분들은 아래 코드를 붙여넣으시면 됩니다. 

 

name=c('김함수','박산술','이비교','송논리','최검정','유반복')
gender=c('남','남','남','여','여','여')
age=c(35,27,42,33,25,47)
height=c(183,177,175,167,155,173)
weight=c(72,69,78,58,47,65)

 

Run을 눌러서 실행해봅시다. 그냥 Run을 누르면 커서가 있는 줄만 실행되기 때문에, 실행하기 원하는 코드에 블록을 씌우고 Run을 눌러야 합니다. 

 

 

벡터를 정의하다 보면 아래와 같은 궁금증이 드는 분들이 계실겁니다. 아래와 같이 벡터를 정의할 수도 있을까요? 

 

KHS=c('김함수','남',35,183,72)

 

사람 이름으로 변수를 만들고, 각 사람의 정보를 벡터로 입력하는 것입니다. 콘솔창에 입력해봅시다. 

 

 

변수 KHS를 다시 불러보면 입력된 값들이 전부 문자형으로 바뀐 것을 알 수 있습니다. 따옴표가 생겼죠? 벡터에는 같은 종류의 자료형만 입력 가능합니다. 만약 숫자형과 문자형을 동시에 입력할 경우 모든 자료형이 문자형으로 바뀝니다. 따라서 벡터를 생성할 때는, 문자는 문자끼리 숫자는 숫자끼리 모아서 생성해주어야 합니다. 

 

벡터라는 자료구조가 생겨서 충분히 편해지기는 했는데 엑셀이 자꾸 생각납니다. 엑셀처럼 표 형태로 데이터를 다루면 더 편할 것 같습니다. 다행히 R에는 엑셀과 비슷한 자료구조가 있습니다. 데이터 분석에서 가장 많이 사용되는 자료구조입니다. 바로 데이터프레임입니다. 

 

데이터프레임

데이터프레임은 벡터를 이용하여 만든 자료구조입니다. 벡터를 아래와 같은 형태로 연결하여 데이터프레임을 만들었습니다. 

 

 

위에서 정의한 벡터들을 가지고 데이터 프레임을 만들어보겠습니다. 데이터프레임을 만들 때는 data.frame( ) 함수를 사용합니다. 괄호 안에 벡터를 만든 변수 이름을 콤마로 구분하여 넣어주면 됩니다. 

 

 

데이터프레임의 각 열이 벡터입니다. 따라서 데이터프레임의 각 열은 같은 종류의 자료형으로 이루어져 있습니다. 데이터프레임을 잘 다룰 수록 R이 편해집니다. 본 강의는 기초강의이므로 데이터프레임이 이런거구나 정도로 이해하고 넘어갑시다. 

 

오늘은 자료구조인 벡터와 데이터프레임을 배워보았습니다. 벡터는 자료형을 한줄로 나열한 것입니다. 데이터프레임은 각 열이 벡터인 자료구조입니다. 

 

다음시간에는 연산자를 배워봅시다. 

 

 

#영상강의

 

반응형

댓글