RLab01
# dplyr은 데이터를 다루는 7가지 동작 함수 # 1)열방향 : 선택 -select() # 2)열방향 : 계산 -mutate() # 3)행방향 : 조건 -filter() # 4)행방향 : 추가 -bind_rows() # 5)행방향 : 정렬 -arrange() # 6)그룹계산 - group_by() + summarise() # 7)열결합 : left_join() install.packages("nycflights13") library(nycflights13) library(dplyr) flights # 열방향 : 선택 -select() # 데이터에서 컬럼을 선택해서 사용함. # select()는 선언된 순서대로 컬럼을 정렬함. select(flights, year, month, day) # 열방향 : 계산 -mutate() # 출력 편의를 일부 데이터만 사용 flights_sml <- select(flights, year:day, ends_with("delay"), distance, air_time) flights_sml # 각 컬럼간의 계산으로 새로운 열을 만들수 있다. flights_sml <- mutate(flights_sml, gain = arr_delay - dep_delay, speed = distance / air_time * 60) # 행방향 : 조건 -filter() filter(flights, month == 1) # 행방향 : 정렬 -arrange() # 지정되는 컬럼 순으로 오름차순 정렬해주는 함수 arrange(flights, dep_delay) # 그룹계산 - group_by() + summarise() # summarise() : 여러 데이터를 요약해서 특성을 파악하는 # 방식으로 동작하는 함수들을 적용할때 사용. sum mean 등 summarise(flights, mean = mean(dep_delay, na.rm = T), n = n()) # na.rm = T : 결측값(NA)을 분석시 미포함. # group_by() : 데이터에 지정한 컬럼별이라는 추가 조건을 지정하는 # 기능을 수행. flights_g <- group_by(flights, month) flights summarise(flights_g, mean = mean(dep_delay, na.rm = T), n = n()) # 열 결합(join) - left_join() flights2 <- select(flights, year:day, hour, origin, dest, tailnum, carrier) flights2 # left_join() : 왼쪽 데이터를 기준으로 하고, by로 지정된 컬럼이 # key로 지정하여 오른쪽 데이터를 왼쪽 데이터에 결합하는 함수 flights_join <- left_join(flights2, airlines, by = "carrier") flights_join
RLab02
보스톤하우징 데이터셋을 분석해본다.
# 보스톤하우징 데이터셋을 분석해본다. # 데이터 수집 # bostonHousing 데이터셋을 활용하기 위해서 # mlbench패키지를 인스톨한다. install.packages("mlbench") library(mlbench) data("BostonHousing") # 5개 변수만 추출해서 따로 데이터셋을 만들다. myds <- BostonHousing[,c("crim","rm","dis","tax","medv")] myds head(myds) dim(myds) grp <- c() # grp변수에다가 medv(주택가격) 상,중,하 분류한 내용을 저장 # 506번 루핑하면서 해당 값을 grp에 저장함. for(i in 1:nrow(myds)){ if(myds$medv[i] >= 25){ grp[i] <- "H" }else if(myds$medv[i] < 25.0 & myds$medv[i] > 17.0){ grp[i] <- "M" }else{ grp[i] <- "L" } } # 팩터값 조정 grp <- factor(grp) grp grp <- factor(grp, levels = c("H","M","L")) grp # 기존의 myds라는 데이터프레임에 grp 팩터를 추가 myds <- data.frame(myds, grp) myds str(myds) # 그룹별 주택의 빈도수 table(myds$grp) # 여기까지 데이터 수집이 끝남. # 분석과정 시작 # 1. 히스토그램 차트 작성 par(mfrow=c(2,3)) #2*3가상화면 분할 for(i in 1:5){ hist(myds[,i], main = colnames(myds)[i], col = "yellow") } par(mfrow=c(1,1)) #가상화면 원복 # 2. 박스상자 par(mfrow=c(2,3)) #2*3가상화면 분할 for(i in 1:5){ boxplot(myds[,i], main = colnames(myds)[i]) } par(mfrow=c(1,1)) #가상화면 원복 # 3. 그룹별 관측값 분포표 (범위) boxplot(myds$crim~myds$grp, main = "1인당 범죄율") boxplot(myds$rm~myds$grp, main = "방의 개수") # 4. 다중 산점도를 통한 변수들간 상관관계 pairs(myds[,-6]) #grp열 제외하고 나타내라라 # 점의 색을 지정 color <- c("red","green","blue") # 점의 모양을 지정 point <- as.integer(myds$grp) pairs(myds[,-6], pch=point, col=color[point]) # 5. 변수간의 상관계수를 확인 cor(myds[,-6])
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음