본문 바로가기

공부/R

R - 데이터 파생변수 만들기

728x90

 

이름 수정하고 싶을 때는 꼭 써야하는 dplr

dplr 설치하기

install.packages("dplyr")

library("dplyr")

1. 데이터 프레임 만들기

df_raw <- data.frame(var1=c(1,2,1),

var2=c(2,3,2))

- 함수 중첩하는 거

데이터 수정하기 직전 기억해야하는 것 = 백업!! 백업 !!

2. 변수명 바꾸기

- df_new <- rename(df_new, v2 = var2)

- 새 이름은 옛날 이름으로 해야함

- 바뀐 상태를 콘솔에서만 보고 싶음 그냥 rename ~ 해도 됨.

Pop quiz

mpg 데이터 불러와서 복사본 만들고 새이름 만드는 작업을 진행해야함.

mpg <- as.data.frame(ggplot2::mpg)

mpg_new <- mpg

library(dplyr)

mpg_new <- rename(mpg_new, city=cty)

mpg_new <- rename(mpg_new, highway=hwy)

head(mpg_new)

3. 파생변수 만들기

df <- data.frame(var1 = c(4,3,8),

var2 = c(2,6,1))

# 만들고

df$var_sum <- df$var1+df$var2

# 변수 추가 (df$를 꼭 넣어야함)

df$var_mean <- (df$var1+df$var2)/2

mpg_new$total <- (mpg_new$highway+mpg_new$city)/2

summary(mpg_new$total)

hist(mpg_new$total)

4. 조건문으로 합격 판정 변수 만들기

mpg_new$test <- ifelse(mpg_new$total >= 20, "pass", "fail")

5. 빈도 분석

table(mpg_new$test)

하면 결과값은

fail 몇 개 pass 몇 개

하고 그래프로 보고 싶다면

library(ggplot2)

qplot(mpg_new$test) -> 시각화

6. 중첩 조건문 활용하기

mpg_new$grade <- ifelse(mpg_new$total >= 30, "A",

ifelse(mpg_new$total>= 20, "B", "C"))

head (mpg, 20)

mpg_new$grade <- ifelse(mpg_new$total >= 30, "A",

ifelse(mpg_new$total>= 25, "B",

ifelse(mpg_new$total >= 20,"C", "D")))

Quiz

library(ggplot2)

library(dplyr)

#불러오기, 체크하기

midwest <- as.data.frame(ggplot2::midwest)

head(midwest)

dim(midwest)

#이름 바꾸기

library(dplyr

midwest <- rename(midwest, total=poptotal)

midwest <- rename(midwest, asian=popasian)

#Asian Ratio 확인하기

midwest$asianrate <- (midwest$asian/midwest$total)*100

hist(midwest$asianrate)

midwest$asian_avg <- mean(midwest$asianrate)

#Large or Small?

midwest$scale <- ifelse(midwest$asian_avg>=midwest$asianrate, "large", "small")

#빈도표 만들기

qplot(midwest$scale)

table(midwest$scale)

728x90

'공부 > R' 카테고리의 다른 글

R - 데이터 불러오기~함수  (2) 2024.04.12
R - CSV 불러와서 계산 후, 새로운 CSV로 저장하기  (0) 2024.04.12