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)여기에 알바생에게 주어야할 '주급' 컬럼을 추가해보도록 하죠.
각 컬럼에 접근하는 방법은 아래의 link를 확인하세요.
Link : //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
데이터프레임에 '$' 을 붙이고 추가하길 원하는 컬럼명(파생변수명)을 입력하면 없는 컬럼의 경우 생성이 됩니다.
있는 변수의 경우는 update.
df_ex$주급 <- df_ex$시급*df_ex$주간근무시간 View(df_ex)위와같이 데이터프레임명$추가할컬럼명 <- 추가하길원하는데이터 를 선언해주시면 됩니다.
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 를 합칩니다. 결과를 보시죠.
'알바생4' 가 추가된 것을 확인하실 수 있습니다.
주의 하셔야 될 점은 rbind() 사용시 구조가 일치해야 합니다.
데이터프레임을 컨트롤 할 수 있는 패키지의 함수를 사용하면 보다 쉽게 행, 열을 추가 삭제 할 수 있습니다.
이 내용은 다음 포스팅에서 알아보도록 하겠습니다.
참고) row index를 사용한 행 삭제
df_ex <- df_ex[-c(4), ]알바생4 row 삭제