R 데이터 프레임 조건 열 추가 - R deiteo peuleim jogeon yeol chuga

Data Analysis

『R』 새로운 열 추가하기 및 조건에 맞춰 내용 채워넣기, 글자 추출하기 (substr)

R로 데이터분석을 할 때 생각보다 자주 사용하는 방법인 듯 하다.

여러개의 변수들 속에서 특징을 찾아내서 새로운 열(column)을 만드는 것.

예를 들어서 설명하자면

 음료

 가격

 아이스 아메리카노

 4000 

 핫초코

 5000

 아이스 카페 모카

 5500 

 그린티

 6000

 아이스 초코라떼

 5500 

이런 식의 표가 있다하면, 음료들을 봤을 때 아이스와 뜨거운 음료로 구분지을 수 있다.

그래서 새로운 열을 추가해서

 음료

 가격

 아이스음료

 아이스 아메리카노

 4000

 yes

 핫초코

 5000

 no

 아이스 카페 모카

 5500

 yes

 그린티

 6000

 no

 아이스 초코라떼

 5500

 yes

이렇게 함으로써, 데이터를 좀더 알아보기 편하고 이해하기 편하게 만드는 것이다.

그 이외에도 가격에 따라 5000원 이하와 5000원 초과로 나눌 수도 있다.

 음료

 가격 

 아이스음료

 5000원 기준

 아이스 아메리카노

 4000

 yes

 이하

 핫초코

 5000

 no

 이하

 아이스 카페 모카

 5500

 yes

 초과

 그린티

 6000

 no

 초과

 아이스 초코라떼

 5500

 yes

 초과

R에서 해보자.

#### 조건 넣어 열 추가 ####

# 파일읽고 파일 확인하기

menu = read.csv("menu.csv", stringsAsFactors = FALSE)
menu

# 아이스면 yes, 따뜻한 음료면 no
# 열을 추가할 때 열 안에 내용이 채워져야 한다.
# 그래서 아이스음료에는 yes 또는 no가 들어가야하므로 처음부터 yes를 넣어주자.

# 그 후 데이터를 확인해보자.

# 여기서 [,아이스음료]의 의미는 [행이름,열이름]이런 형태이다.

# 즉, [,아이스음료]라는 의미는 아이스음료라는 열을 추가한다는 뜻
menu[,"아이스음료"] = "yes"

menu

# 조건: menu$음료 즉, menu파일에 음료 열에서 1번째부터 3번째까지의 단어가 "아이스"가 아니면
# 아이스음료에 no라고 채워넣어라

# R에서는 조건에 같다라는 기호를 "==", 다르다라는 기호를 "!="로 사용한다.

# substr설명은 맨 밑에..
menu[ substr(menu$음료, 1, 3)  != "아이스", "아이스음료"] = "no"

menu

# 5000원기준 "이하"인지 "초과"인지, 이번에는 "초과"로 먼저 채워넣자.
menu[,"5000원기준"] = "초과"

menu

# 조건: menu$가격 즉, menu파일에 가격 열에서 5000원 이하이면 5000원기준 열에 "이하"라고 채워 넣어라

# 이상일 때는 ">=", 미만일 때는 "<", 초과일 때는 ">"
menu[ menu$가격 <= 5000, "5000원기준"] = "이하"
menu

# substr을 사용했는 데 사용법은 간단하다.

substr(문자, 시작하는 문자열순번, 끝나는 문자열순번)

예를 들어, starbucks menu라는 단어의 3번째부터 5번째 문자열을 추출하고 싶을 때

substr("starbucks menu", 3, 5)

# 특이점은 띄어쓰기도 추출이된다는 것

substr("starbucsks menu", 8, 12)

R 데이터프레임 행 열(파생변수) 추가하기 add row, column to dataframe

R에서 데이터프레임에 파생변수(컬럼)을 추가하는 방법을 알아보겠습니다.

열(파생변수) 추가 add column

아래와 같이 알바생의 시급과 주간 근무시간이 있는 데이터프레임 예로 들겠습니다.

df_ex <- data.frame(이름 = c("알바생1", "알바생2", "알바생3"),
                    시급 = c(9000, 9500, 10000),
                    주간근무시간 = c(32, 15, 28))
View(df_ex)
R 데이터 프레임 조건 열 추가 - R deiteo peuleim jogeon yeol chuga

여기에 알바생에게 주어야할 '주급' 컬럼을 추가해보도록 하죠.

각 컬럼에 접근하는 방법은 아래의 link를 확인하세요.

Link : https://aljjabaegi.tistory.com/515

R 데이터분석 DB table 처럼 만들어 보자 data.frame 데이터 프래임

R 데이터분석 DB table 처럼 만들어 보자 data.frame 데이터 프래임 DB 테이블 처럼 row 와 column 이 있는 데이터셋이 R에서는 data frame 입니다. row는 vectors의 데이터가, cloumn명은 vectors의 이름이 되는..

aljjabaegi.tistory.com

R 데이터 프레임 조건 열 추가 - R deiteo peuleim jogeon yeol chuga

데이터프레임에 '$' 을 붙이고 추가하길 원하는 컬럼명(파생변수명)을 입력하면 없는 컬럼의 경우 생성이 됩니다.

있는 변수의 경우는 update.

df_ex$주급 <- df_ex$시급*df_ex$주간근무시간
View(df_ex)

위와같이 데이터프레임명$추가할컬럼명 <- 추가하길원하는데이터 를 선언해주시면 됩니다.

R 데이터 프레임 조건 열 추가 - R deiteo peuleim jogeon yeol chuga

View(df_ex)로 확인하시면 주급 컬럼이 추가된 것을 확인하실 수 있습니다.

행 추가 add row

rbind()

df_ex2 <- data.frame(이름="알바생4", 시급=9200, 주간근무시간=40, 주급=9200*40)
df_ex <- rbind(df_ex, df_ex2)
View(df_ex)

위의 코드를 보시면 df_ex2 라는 데이터프레임을 하나 만들어 

rbind() 함수를 사용하여 df_ex, df_ex2 를 합칩니다. 결과를 보시죠.

R 데이터 프레임 조건 열 추가 - R deiteo peuleim jogeon yeol chuga

'알바생4' 가 추가된 것을 확인하실 수 있습니다.

주의 하셔야 될 점은 rbind() 사용시 구조가 일치해야 합니다.

데이터프레임을 컨트롤 할 수 있는 패키지의 함수를 사용하면 보다 쉽게 행, 열을 추가 삭제 할 수 있습니다.

이 내용은 다음 포스팅에서 알아보도록 하겠습니다.

참고) row index를 사용한 행 삭제

df_ex <- df_ex[-c(4), ]

알바생4 row 삭제