본문 바로가기
인공지능/R

R 데이터프레임, 데이터 분석 기초

by bibibig_data 2021. 6. 2.

 

# 패키지 다운로드
install.packages("ggplot2")
library(ggplot2)

x <-c("a", "a", "b", "c")
x

qplot(x)

print(mpg)   #내장 패키지 (ggplot2 안에)

mpg

qplot(data = mpg, x=cty)

ggplot2::mpg  #클래스::클래스 2PartName

ls() #object list

rm(x)  #지우기

str(mpg) # 구조 확인

mpg$hwy # 데이터프레임의 변수 선택

max(mpg$hwy) #hwy변수의 최대값

-install.packages(" ")  패키지 다운로드

-library()  라이브러리 할당

-qplot() 그래프 생성

-rm() 지우기

-str() 구조 확인

-데이터프레임$변수  변수선택

-max() 최대값

 

 

# 그래프 그리기

# x축 cty
qplot(data=mpg, x=cty)

# x축 dry, y축 hwy
qplot(data=mpg, x=dry, y=hwy)

# x축 dry, y축 hwy, 선그래프 형태
qplot(data=mpg, x=dry, y=hwy, geom = "line")

# x축 dry, y축 hwy, 상자 그림 형태
qplot(data=mpg, x=hwy, y=hwy, geom = "boxplot")

# x축 dry, y축 hwy, 상자그림 형태, drv별 색 표현
qplot(data=mpg, x=hwy, y=hwy, geom = "boxplot", colour = drv)

 


 

4장 데이터프레임

80p-84p - 데이터프레임

english <- c(90,80,60,70)
english

math <- c(50,60,100,20)
math

df_midterm <- data.frame(english, math)
df_midterm

class <- c(1,1,2,2)
class

mean(df_midterm$english)
mean(df_midterm$math)

df_midterm <- data.frame(english = c(90,80,60,70),
                         math = c(50,60,100,20),
                         class = c(1,1,2,2))
df_midterm

 

데이터프레임 만드는 법 1) 엑셀  2) DB 

 


 

85p-92p - 엑셀파일 불러오기

엑셀을 불러온 경우 엑셀파일을 꼭 열어보기

install.packages("readxl")
library(readxl)


dir("D:/rclass")
df_exam <- read_excel("D:/rclass/excel_exam.xlsx")
df_exam

mean(df_exam$english)
mean(df_exam$science)

df_exam_novar <- read_excel("D:/rclass/excel_exam_novar.xlsx") #첫번째 행의 값이 col_names가 됨
df_exam_novar

df_exam_novar <- read_excel("D:/rclass/excel_exam_novar.xlsx", #첫번째 행의 값을 첫번째 행의 값으로.
                            col_names = F)
df_exam_novar

df_exam_sheet <- read_excel("D:/rclass/excel_exam_sheet.xlsx", # 엑셀파일의 3번째 시트에 있는 데이터 불러오기
                            sheet = 3)
df_exam_sheet

 


 

93-94p - csv파일 불러오기

csv로 불러오는 이유 ? 데이터 양의 제약이 없다. 빠르다.
csv로 불러올 때 주의할 점 : 구분자를 꼭 확인하기 !!

#csv 파일 불러오기

dir("D:/rclass")

df_csv_exam <- read.csv("D:/rclass/csv_exam.csv")   # f1키로 사용법 확인 read.table(file, header=FALSE[첫번째 행], 
                                                    # sep=""[구분자 지정] )
df_csv_exam

df_csv_exam <- read.csv("csv_exam.csv", stringsAsFactors = F) # Factor로 유형을 변경하지 않음

 


 

95p - csv파일 생성해서 저장하기

#csv파일 만들기
df_midterm <- data.frame(english = c(90,80,60,70),
                         math = c(50,60,100,20),
                         class = c(1,1,2,2))


write.csv(df_midterm, file = "D:/rclass/df_midterm.csv")  # r에서 만든 데이터프레임을 csv파일로 저장

 


 

96p-97p - RDS파일 생성하기 

rds파일은 r에서만 사용 가능하기 때문에 호환성이 적다.

 

# RDS 파일로 저장하기

saveRDS(df_midterm, file="D:/rclass/df_midterm.rds")

dir("D:/rclass")

rm(df_midterm) #데이터프레임 삭제

df_midterm # 삭제된 것 확인

df_midterm <- readRDS("D:/rclass/df_midterm.rds")

df_midterm # 생성된 것 확인

 


 

5장 데이터 분석 기초

데이터를 파악할 때 사용하는 함수들
head()  데이터 앞부분 출력
tail() 데이터 뒷부분 출력
view() 뷰어 창에서 데이터 확인
dim() 데이터 차원 출력
str() 데이터 속성 출력
summary() 요약 통계량 출력

 


 

100p-105p 데이터 파악

#데이터 불러오기
exam <- read.csv("D:/rclass/csv_exam.csv")
exam


# head() - 데이터 앞부분 확인하기
head(exam) # default는 앞에서부터 6행까지 출력
head(exam, 10) # 앞에서부터 10행까지 출력


# tail() - 데이터 뒷부분 확인하기
tail(exam) # default는 뒤에서부터 6행까지 출력
tail(exam, 10) # 뒤에서부터 10행까지 출력


# view() - 뷰어 창에서 데이터 확인
View(exam)  #대문자 V로 입력해야 함을 주의


# dim() - 데이터 차원 출력
dim(exam)

# str() - 데이터 속성 출력
str(exam)  # 20개의 obs(관측치)와 5개의 variables(변수)

#summary() - 요약 통계량 출력
summary(exam)

summary() 사용시 출력되는 요약 통계량

  Min,      1st Qu,       Median,      Mean,        3rd Qu,     Max

최솟값,  1사분위수,     중앙값,       평균,       3사분위수,  최댓값

 

 


 

106p-109p - 'mpg'이용해서 데이터 파악해보기

# mpg데이터 파악하기
mpg <- as.data.frame(ggplot2::mpg)

head(mpg)
tail(mpg)
View(mpg) # 열에서 정렬 가능
dim(mpg)  # 행,열 출력 (행 234개, 열 11개)
str(mpg)
summary(mpg)

 


 

109p 요약 통계량 (summary)를 이용해 데이터 해석하기

cty변수이용 ( 도시 연비 )

- Mean : 자동차들이 도시에서 평균적으로 갤런장 16.86마일을 주행한다.

- Min, Max : 연비가 가장 낮은 모델은 갤런당 9마일, 가장 높은 모델은 35마일을 주행한다.

- Median, 1st, 3rd : 자동차들의 연비가 갤런당 17마일을 중심으로 14마일에서 19마일사이에 몰려있다.

 


 

110p - 117p 변수명 바꾸기

# 05-2 변수명 바꾸기

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

install.packages("dplyr") # dplyr설치
library(dplyr) # dplyr 로드


# 복사본 만들기
df_new <- df_raw # 복사본 생성
df_new # 복사본 출력


# 변수명 바꾸기
df_new <- rename(df_new, v2 = var2) # var2를 v2로 수정
df_new


# 05-3 파생변수 만들기
df <- data.frame(var1 = c(4,3,8),
                 var2 = c(2,6,1))

df

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

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

# mpg 통합 연비 변수 만들기

mpg$total <- (mpg$cty + mpg$hwy)/2 # 통합 연비 변수 생성
head(mpg)

mean(mpg$total) # 통합 연비 변수 평균


#조건문을 이용해 파생변수 만들기

summary(mpg$total) # 통계량에서 중앙값과 평균 확인하기

hist(mpg$total) # 히스토그램 생성

해석

- 평균과 중앙값이 약 20이다.

- 연비가 20~25 사이에 해당하는 자동차 모델이 가장 많다.

- 대부분 25이하이고, 25를 넘기는 자동차는 많지 않다.

 


 

117p - 119p - ifelse문 사용

# 합격 판정 변수 만들기

# 20이상이면 pass, 그렇지 않으면 fail 부여
mpg$test <- ifelse(mpg$total >= 20, "pass", "fail")

head(mpg, 20) # 데이터 확인


# 빈도표로 합격 판정 자동차 수 살펴보기
table(mpg$test) # 연비 합격 빈도표 생성

library(ggplot2)
qplot(mpg$test) # 연비 합격 빈도 막대 그래프 생성

total이 20이상인 데이터 128개

 

pass가 더 많음

Error in .Call.graphics(C_palette2, .Call(C_palette2, NULL)) : 
  그래픽 상태가 올바르지 않습니다 라고 뜨면 ?  history지우고 다시 실행

 


 

119p - 121p - 중첩 조건문 활용하기

# total을 기준으로 A, B, C 등급 부여
mpg$grade <- ifelse(mpg$total >= 30, "A",
                    ifelse(mpg$total >= 20, "B", "C"))
head(mpg, 20)

# 빈도표, 막대 그래프로 연비 등급 살펴보기
table(mpg$grade)

qplot(mpg$grade)

 

'인공지능 > R' 카테고리의 다른 글

R - 지도시각화  (0) 2021.06.08
R - 인터렉티브  (0) 2021.06.08
R (4)  (0) 2021.06.04
R 데이터 가공  (0) 2021.06.03
R 설치, 변수, 함수, 패키지 이해  (0) 2021.06.01