티스토리 뷰

반응형

전 포스팅에 나온 용어를 짧게 요약해보면 

Object: 이건 변수라고 생각하면 쉬운데 데이터를 불러오는게 아니라 우리가 R에서 임의로 정의내리는 거예요.

Num (numeric): 이건 모든 숫자

Int (integer): 정수

chr (character=string): 텍스트

factor: 텍스트에 수치를 부여한 것

각각에 해당하는 objects들을 새롭게 다시 만들어볼게요.

여기까지는 저번 포스팅에서 배웠죠?

 

데이터 프레임(data frame) 만들기

만약 데이터가 많다고 생각해봐요. 보기 어렵겠죠?

그럴 경우 data frame을 만들어줘요.

data.frame 기능을 이용해서요.

Object 이름은 맘대로 하셔도 돼요. 즉 DF가 아니여도 돼요.

이렇게 만들고 나서 View 기능을 이용해서 보면 돼요. (V는 반드시 대문자)

이 View 기능을 실행하면 source pane에 탭이 하나 생겨요. 

거기로 가면 아래와 같이 데이터를 볼 수 있어요.

 

데이터 프레임 안에서 수정/추가

데이터를 입력하다가 실수로 나이를 잘 못 입력했다고 해봐요. 전부 +1을 해야돼요.

어떻게 해야할까요? 

DF$age2 <- DF$age+1

이렇게 해주면 돼요.

"DF 안에 있는 age에 +1을 해서 DF 안에 age2를 만들어라" 이런 의미가 돼요.

그럼 아래와 같이 데이터 프레임 안에 새로운 object인 age2가 생기고 이 안의 값은 기존 age 안에 있던 값의 +1이 된 값이 저장이돼요.

만약 평균을 계산하고 싶으면 mean() 을 사용해요.

DF안에 있는 age2의 평균을 계산하고 싶으면

mean(DF$age2)

표준편차를 계산하고 싶으면 sd()

 

만약 표준화시키고 싶으면, 표준화 시키는 공식이 뭐였죠?

z = (x-mean)/SD 였죠?

만약 나이를 표준화 시킨다면(그럴 일은 없겠지만..)

zage<-(age-mean(age))/sd(age)

이렇게 계산식을 넣어서 하면 돼요

만약 DF 프레임 안에다가 만들고 싶으면

DF$zage <- (DF$age-mean(DF$age))/sd(DF$age)

그럼 이렇게 데이터 프레임 안에 들어오지요.

 

데이터 프레임 정리

자 이제 이 데이터 프래임을 정리를 해보려고 해요.

지금 현재 ID, age, fav.color, age2, zage 이렇게 있죠?

근데 만약 ID를 없애고, age, zage, age2, fav.color 이 순서대로 정리하고 싶으면 어떻게 해야할까요?

DF2 <- DF[,c(2,5,4,3)]

이 의미는 "DF2라는 새로운 데이터 프래임을 만드는데, DF의 2, 5, 4, 3 세로 줄 순서대로 만들어라" 라는 명령어예요.

(행, 열 단어가 전 너무 헷갈려요.. 그래서 column을 세로 줄, row를 가로 줄이라고 할게요.)

앞에 콤마(,)가 들어가는 이유는 보통 [가로줄, 세로줄] 이렇게 들어가거든요. 근데 콤마 앞에 아무것도 넣지 않음으로써 가로줄은 건들지마 라고 하는거죠.

View(DF2) 해서 보시면

이렇게 나왔죠? 이제 응용도 가능할꺼예요.

중간에 한 세로줄을 빼고 싶으면

DF3<- DF[,c(1:3,5)]

이럼 age2가 빠지겠죠?

 

DF4 <- DF[,2:5]

이러면 ID가 빠지고요

만약 변수(object)이름을 바꾸고 싶으면

names(DF) <- c("ID", "age", ...)

이렇게 세로 줄 왼쪽부터 차례대로 넣어주면 돼요.

이번에는 특정 데이터를 찾아볼까요?

DF 프레임 안에 age가 20세 이상이면서 green을 좋아하는 사람이 몇 명이나 있을까? 를 알고싶으면

sum(DF$age>=20 & DF$fav.color=="green")

sum을 넣어줌으로써 몇 명인지 알려주고, 나머지는 알겠죠?

& 이걸 넣을 때에는 앞 뒤로 띄어쓰기 잊지 마시고요.

 

그럼 만약 sum을 쓰지 않으면 어떻게 될까요?

DF$age>=20 & DF$fav.color=="green"

이렇게 하면 몇 번째 가로줄에 이에 해당하는 케이스가 있는지 말해줘요.

이렇게요.

3번째에 TRUE라는 말은 세번째 가로줄이 이 범주안에 들어온다는 뜻이죠.

마지막으로 만약 20세 이상이면서 green을 좋아하는 사람만 따로 빼내고 싶다면요?

그럼 이렇게 해보세요.

Over20G <- DF[DF$age>=20 & DF$fav.color=="green",]

맨 마지막에 콤마를 넣음으로써, 모든 세로줄을 포함하라는 뜻이예요.

따라서 새롭게 만들어지는 Over20G는

이렇게 20세 이상이면서 green을 좋아하는 사람의 데이터만 뽑아서 저장해요.

 

별 무리없이 잘 따라오셨나요? 이런식으로 데이터를 관리, 수정 등을 할 수 있어요.

오늘도 크게 어려운건 없었죠?

다음에는 데이터를 불러오는걸 해볼게요.

 

 

도움이 됐다면 커피 한 잔 사주시면 감사하겠습니다^^

 

EPIK is 어려운 지식을 가능한 한 쉽게 공유하는 곳이예요 :)

Hey 👋 I just created a page here. You can now buy me a coffee!

www.buymeacoffee.com

 

반응형

'통계 이야기 > R을 공부해보자' 카테고리의 다른 글

R 데이터를 살펴보자 2  (0) 2020.06.14
R 데이터를 살펴보자  (0) 2020.06.08
R 데이터 불러오기  (0) 2020.06.07
R 기초 1 (갖고 놀기)  (0) 2020.06.03
R 입문! (설치 및 세팅)  (0) 2020.06.03
댓글