728x90

R은 통계프로그래밍 언어로 일반인이 사용하기 쉽게 만든 언어이다.

그러나 필자는 프로그래머이고 비 프로그래머의 인식으로 접근하기 힘든면이 있다.

강의 또한 그러하다. 강의 곳곳에 프로그래머적인 시선이 들어있으니 참고하여 필요없으면 넘겨라.


참고:

[개발환경 셋팅하기]R설치 및 환경변수 등록-(1)

[개발환경 셋팅하기]RStudio설치-(2)

[개발환경 셋팅하기]RStudio프로젝트 만들기-(3)


데이터 프레임은 리스트의 일종으로 데이터들의 묶어서 처리하는 것이다.

사실 필자의 경우 쓰다보면 리스트랑 큰차이를 모르겠던데 어쨋던 유용한 데이터 타입인것은 확실하다.

이 데이터타입은 어찌보면 매트릭스와 유사한 느낌이다.

값도 2차원으로 넣을 수 있으며 여러데이터를 보유했다는것 역시 그렇다.

그러나 가장큰 차이점은  데이터 프레임은 서로 다른 종류의 데이터를 넣을 수있다는 것이다.

벡터와 매트릭스는 서로 같은 종류의 데이터만 수납할 수 있다.

즉 벡터는 숫자를 넣기 시작했다면 숫자만, 문자를 넣기시작했다면 문자만 넣을 수 있는 것이다.

그러나 데이터 프레임은 문자 숫자 가릴것 없이 골고루 넣을 수 있다는 장점이 있다.

그리고 데이터 프레임의 쓰는 느낌은 쉽게 이야기하자면 그냥 DB의 Relation(물리적 관점에서 본다면 table)이라고 봐도 무방하다.

즉 DB의 데이터를 저장하기에 최적의 자료형이라는 것이다.

사용하는 방식은 크게 보면 아래와 같다.


num <- seq(5)

title <- c('StarCraft','LeagueOfLegend','BattleGround','AgeOfEmfire','Gersang')

prices <- c(45000,5000,50000,70000,5000)

count <- c(10,5,3,7,6)


game <- data.frame(Num=num,Title=title,Prices=prices,Count=count)


위의 자료는 총 4개의 벡터를 합쳐서 하나의 데이터 프레임으로 만드는 것이다.

seq함수는 처음 등장했는데 seq내부에 숫자를 넣어주면 1부터 시작해서 해당숫자까지의 정수를 벡터로 반환해준다.

여기서 중요한 점이 있다. <-와 =의 차이점이기도한데 파라메터를 붙혀줄때는 반드시 =을 써 주어야한다는 것이다.

이는 엄밀히 말하면 강제는 아니지만 둘의 결과가 다르게 나온다.

<-와 =는 외부에서 쓰면 똑같이 동작하는것 처럼 보이지만 실제로는 약간의 차이가 있다.

<-는 오른쪽 값을 왼쪽 변수에 넣어준다는 뜻이며 =의 뜻은 오른쪽 값을 왼쪽 값과 동일시 한다는 뜻이다.

언뜻 보면 아무문제 없어 보이지만 파라메터에서 <-를 사용하게 된다면 오른쪽 값을 왼쪽의 변수에 넣어주게 되므로

변수가 따로 생성되게 된다는 문제점이 있다. 즉  game의 속성으로 Num이 생김과 동시에 외부 변수 Num역시 생성되는 것이다.

때문에 생성하려고 의도 하지 않았던 Num이 생성되는다는 문제점이 발생하는 것이다.

따라서 일반적으로 속성값은 반드시 =을 사용해 준다.



결과는 영락없는 Table같은 형태이다.


데이터프레임의 원소 추출


사용법은 역시 벡터와 매트릭스와 동일하다. 사실 모든 데이터형의 사용이 동일하다.

이는 R의 장점인것 같다. 데이터를 사용하기 매우 용이하게 되어있다.



사용 방법이 유사하다 못해 똑같다.

'Programming > R' 카테고리의 다른 글

[R-07]배열(Array)  (0) 2017.11.18
[R-06]리스트(list)  (0) 2017.11.18
[R-04]행렬(matrix)  (0) 2017.11.18
[R-03]벡터(vector)  (0) 2017.11.17
[R-02]기본 연산자  (0) 2017.11.15

+ Recent posts