>RE::VISION CRM

R 데이터 분석

[CRMAJU2018] 데이터 분석 기초 연습문제[3]

YONG_X 2018. 4. 16. 14:53

#---------

# 은행마케팅 데이터를 사용한 연습문제 예제


bnk01 <- read.csv("https://t1.daumcdn.net/cfile/blog/99721B3359B3C43711?download")


# 컬럼 선택


# job과 marital 만으로 구성된 데이터프레임 (부분집합)을 생성하라


bnk0101 <- bnk01[,c("job", "marital")]

head(bnk0101)


# 행 선택

# marital의 값이 married인 고객만을 추출하여 부분집합을 생성하라


bnk0102 <- bnk01[bnk01$marital=="married",]

head(bnk0102)


# 잔고가 $20K 보다 큰 사람 몇명?


nrow(bnk01[bnk01$balance>200000,])


# 잔고 분포 확인

plot(sort(bnk01$balance))

range(bnk01$balance)



# 잔고가 $1K 보다 보다 작은 사람 몇명?


nrow(bnk01[bnk01$balance<1000,])


# 여성으로 30세이상 고객 몇명?

# == 성별변수 없음 == 계산 불가


# 대출이 있는 사람중 20대의 잔고 평균은 ?

mean(bnk01[bnk01$loan=="yes" & bnk01$age>=20 & bnk01$age<=29,]$balance)


bnk01tmp <- bnk01[bnk01$loan=="yes" & bnk01$age>=20 & bnk01$age<=29,]

mean(bnk01tmp$balance)


# 마케팅 성공한 사람들의 연령 평균은?

mean(bnk01[bnk01$y=="yes",]$age)


# 마케팅에 반응하지 않은 고객들의 잔고 평균은?

mean(bnk01[bnk01$y=="no",]$balance)


# 반대 집단의 값

# mean(bnk01[bnk01$y=="yes",]$balance)



# data type 데이터 형식 변환

# 마케팅 성공여부인 y의 형식을 {0, 1}로 변경하라


bnk01tmp <- bnk01

bnk01tmp$y1 <- ifelse(bnk01tmp$y=="yes",1,0)

table(bnk01tmp[,c("y","y1")])


# 연령대를 10대 단위로 변환하라 

# 10대 단위로 구분된 값으로 가지는 새로운 변수를 생성하여 추가


bnk01tmp <- bnk01

bnk01tmp$age_grp <- as.character(as.integer(bnk01tmp$age/10))

head(bnk01tmp[bnk01tmp$age_grp=="5",])


# paste와 substr 활용

# 직업의 앞 세자리만 추출해 job_kd 라는 변수로 저장하라

bnk01tmp <- bnk01

bnk01tmp$job_kd <- substr(bnk01tmp$job,1,3)

head(bnk01tmp)