주어진 데이터를 원하는 형태로 변형하려면 R에서 제공하는 내장 함수들을 사용할 수도 있습니다. 그러나 R에서 제공하는 내장 함수보다 더 편리하게 데이터를 변형하기 위해서 dplyr 패키지를 사용합니다.

 

쉽게 배우는 R데이터 분석 에서는 자주 사용하는 8개의 함수를 제시하였습니다.

함수 기능
filter() 행 추출
select() 열(변수) 추출
arrange() 정렬
mutate() 변수 추가
summarise() 통계치 산출
group_by() 집단별로 나누기
left_join() 데이터 합치기 (열)
bind_rows() 데이터 합치기 (행)

 

dplyr 함수는 데이터 프레임 변수 뒤에 %>% 기호 (파이프 연산자) 를 사용해서 함수들을 연결하여 함수를 적용할 수 있습니다. %>% 기호는 R Studio 에서는 Ctrl + Shift + M 을 누르면 삽입할 수 있습니다.

Do it R에서 제공하는 csv_exam 파일을 활용하여 실습하여 보도록 하겠습니다.

library(dplyr)
exam <- read.csv("csv_exam.csv") 

 

1. 조건에 맞는 데이터 추출하기 (행)

전에 배웠던 ifelse로도 같은 역할을 할 수 있습니다. 그러나 dplyr의 filter() 함수를 사용하면 더 간편하게 원하는 데이터를 추출해 낼 수 있습니다.

1반의 학생들의 데이터만 추출해 보겠습니다.

exam %>% filter(class == 1)

 

2반이 아닌 학생들의 데이터를 추출하려면 같지 않다!= 기호를 사용하여 추출할 수 있습니다.

exam %>% filter(class != 2)

 

초과, 미만, 이상, 이하도 동일하게 기호를 사용하면 됩니다. 영어 점수가 60점 이상인 경우만을 추출해 보겠습니다.

exam %>% filter(english >= 60)

 

여러 조건을 동시에 충족하게 하려면 그리고를 의미하는 논리 연산자 & 를 사용하면 됩니다.

exam %>% filter(english >= 60 & math >= 60)

 

여러 조건 중 하나를 충족하게 하려면 또는을 의미하는 | 기호를 사용하면 됩니다.

exam %>% filter(english >= 60 | math >= 60)

 

매치 연산자 %in% 을 사용하여 변수의 값이 지정된 조건에 해당되는지 한번에 확인할 수도 있습니다.

1, 3, 5반만 추출

exam %>% filter(class %in% c(1,3,5))

 

추출한 행으로 데이터를 만들수도 있습니다.

higher_60 <- exam %>% filter(english >= 60 | math >= 60)

 

2. 필요한 변수만 추출하기 (열)

dplyr 함수의 select() 함수는 필요한 열을 추출할 수 있습니다.

exam %>% select(math) # math 열만 추출

 

여러 열을 추출하려면 ,를 활용하여 변수명을 나열하면 됩니다.

exam %>% select(math,english)

 

변수를 제외하려면 빼기 기호 - 를 사용하면 됩니다.

exam %>% select(-math) #math 열 제외하고

 

3. 함수 조합하기

dplyr 함수는 파이프 연산자 %>% 를 이용해 조합할 수 있습니다.

exam %>% 
   filter(class == 1) %>% 
   select(math)

 

4. 정렬하기

arrange()를 이용하여 데이터를 원하는 순서로 정렬할 수있습니다.

1) 오름차순으로 정리하기

arrange() 에 기준으로 삼을 변수를 입력하면 오름차순으로 정렬됩니다.

exam %>% arrange(math)

 

2) 내림차순으로 정리하기

arrange() 함수 내에 desc() 함수를 적용하면 내림차순으로 정렬할 수 있습니다.

exam %>% arrange(desc(math))

 

5. 파생변수 추가하기

mutate() 함수를 사용하면 기존 데이터에 파생변수를 보다 더 쉽게 만들 수 있습니다.

exam %>% 
  mutate(total = math + english + science)

 

mutate()에서도 ifelse()를 적용하여 연속형 변수를 범주화 할 수 있습니다.

exam %>% 
  mutate(test = ifelse(science >= 60, "p", "f"))

 

6. 집단별로 요약 통계량 내기

group_by() 와 summarise()를 사용하면 집단별로 요약 통계량을 파악할 수 있습니다.

exam %>% 
    group_by(class) %>%    #class 로 나누기
    summarise(mean_math = mean(math))    #class 별 평균

summarise() 함수 안에는 연속형 변수만 들어갈 수 있습니다.

 

7. 데이터 합치기

1) 열 데이터 합치기

left_join()을 사용하면 데이터의 행을 합칠 수 있습니다. 변수를 추가한다고 볼 수 있습니다. by = 파라미터에서 기준으로 삼을 변수명을 지정해 줄 수 있습니다.

test1 <- data.frame(id = c(1,2,3,4,5),
                    midterm = c(60,80,70,90,85))

test2 <- data.frame(id = c(1,2,3,4,5),
                    final = c(60,80,70,90,85))

total <- left_join(test1, test2, by = "id") #id를 기준으로 합친다.

 

2) 행 데이터 합치기

bind_rows()를 사용하여 행 데이터를 합칠 수 있습니다. 데이터의 양이 늘어난다고 볼 수 있습니다.

group_a <- data.frame(id = c(1,2,3,4,5),
                    test = c(60,80,70,90,85))

group_b <- data.frame(id = c(6,7,8,9,10),
                    test = c(70,83,65,95,80))

group_all <- bind_rows(group_a, group_b)

 

Source Code

https://github.com/ark1st/Doit_R_ARKS_CODE/blob/master/data_Pretreatment

 

// 참고자료

김영우, 『쉽게 배우는 R 데이터 분석』, 이지스 퍼블리싱,

2019 이영호, "확률과통계" 가천대학교, 2019.03.21

'Programming > R' 카테고리의 다른 글

그래프 만들기  (0) 2019.04.30
데이터 정제하기 (데이터 클린징)  (0) 2019.04.15
변수 조작하기  (0) 2019.04.10
데이터 파악하기  (0) 2019.04.09
외부 데이터로 데이터프레임 만들기  (0) 2019.03.30

1. 변수명 바꾸기

데이터의 특징 파악 이후, 분석 시 변수를 기억하기 편하도록 변수명을 바꾸어 주는 작업을 해 주어야 합니다.

패키지 설치

변수명을 바꿀 때에는 R의 패키지인 dplyr 패키지 내의 rename() 함수를 사용합니다. 패키지를 설치하고 불러옵니다.

install.packages("dplyr")
library(dplyr)

 

데이터 프레임 복사본 만들기

이번에도 실습 데이터로 ggplot2에 내장된 mpg데이터를 사용하겠습니다. 데이터 분석을 하기 위해 변수를 가공해야 할 때는 원본 데이터를 직접 사용하는 것 보다는 언제든 원본으로 되돌릴 수 있도록 복사본을 만들어 사용하는 습관을 들이는 것이 좋습니다.

mpg_raw <- ggplot2::mpg
mpg_new <- mpg_raw

 

변수명 바꾸기

복사본을 생성한 후 rename()을 사용하여 변수명을 바꿔보겠습니다. mpg 데이터의 hwy 변수는 고속도로 연비를 나타내는 변수 입니다. 이 변수를 highway 라는 변수명으로 바꾸어 보겠습니다. 또한 cty 변수는 도시 연비를 나타내는 변수 입니다. 이 변수를 city 라는 변수명으로 바꾸어 보겠습니다.

mpg_new <- rename(mpg_new, highway = hwy)
mpg_new <- rename(mpg_new, city = cty)
head(mpg_new)

# A tibble: 6 x 11
#  manufacturer model displ  year   cyl trans      drv     city highway fl    class  
#  <chr>        <chr> <dbl> <int> <int> <chr>      <chr> <int>   <int> <chr> <chr>  
# 1 audi         a4      1.8  1999     4 auto(l5)   f        18      29 p     compact
# 2 audi         a4      1.8  1999     4 manual(m5) f        21      29 p     compact
# 3 audi         a4      2    2008     4 manual(m6) f        20      31 p     compact
# 4 audi         a4      2    2008     4 auto(av)   f        21      30 p     compact
# 5 audi         a4      2.8  1999     6 auto(l5)   f        16      26 p     compact
# 6 audi         a4      2.8  1999     6 manual(m5) f        18      26 p     compact

 

2. 파생변수 만들기

데이터에 들어 있는 변수만 이용하여 분석할 수도 있지만 변수를 조합하여 새 변수를 만들고 이 변수들을 분석하는 경우도 많습니다. 또한 연속형 변수를 범주형의 형태로 바꾸어 범주형에서 사용되는 빈도분석 등의 분석 기법을 적용할 수도 있습니다. 이번에도 mpg 데이터를 그대로 사용 하여 진행하겠습니다.

mpg 데이터 내에는 2개의 연비 변수가 있었습니다. 도시 연비를 나타내는 cty 변수와 고속도로 연비를 나타내는 hwy 변수 입니다. 전의 실습에서 cty는 city로, hwy는 highway로 이름을 바꾸었습니다. 이 두 변수의 평균을 내어 통합 연비 변수를 추가하여 보겠습니다.

mpg_new$total <- (mpg_new$city + mpg_new$highhway)/2
head(mpg_new)
# A tibble: 6 x 12
#  manufacturer model displ  year   cyl trans     drv   city highway fl   class    total
#  <chr>      <chr> <dbl> <int> <int> <chr>      <chr> <int>   <int> <chr> <chr>   <dbl>
# 1 audi       a4      1.8  1999     4 auto(l5)   f        18      29 p     compact  23.5
# 2 audi       a4      1.8  1999     4 manual(m5) f        21      29 p     compact  25  
# 3 audi       a4      2    2008     4 manual(m6) f        20      31 p     compact  25.5
# 4 audi       a4      2    2008     4 auto(av)   f        21      30 p     compact  25.5
# 5 audi       a4      2.8  1999     6 auto(l5)   f        16      26 p     compact  21  
# 6 audi       a4      2.8  1999     6 manual(m5) f        18      26 p     compact  22  

추가된 변수의 평균을 구해보겠습니다.

mpg_avg <- mean(mpg_new$total)
mpg_avg
# [1] 20.14957

 

조건문을 사용하여 파생변수 만들기

변수를 조합한 파생변수를 만들 수도 있지만 조건에 따라서 각기 다른 값을 반환시켜 주는 조건문 함수를 이용하여 파생 변수를 만들 수도 있습니다. 이 작업은 연속형 변수의 범주화 작업이라고 말할 수 있습니다. 연속형 변수를 일정한 기준에 따라 범주화 함으로써 범주형 변수에서 사용할 수 있는 빈도 분석등의 기법을 적용할 수 있게 됩니다.

여기서 주의해야 할 점은 기준값을 정할 때 데이터를 나누는 기준이 합당해야만 하다는 점을 염두에 두고 작업해야만 합니다.

R에서의 조건문 함수는 여러 종류가 있지만 가장 많이 사용되는 함수는 ifelse() 함수 입니다. 함수의 원형을 살펴 보겠습니다.

ifelse(test, yes, no)

여기서 test에는 조건이 위치합니다. 조건이 참(T) 일때는 yes 위치의 값이 return 되고, 조건이 거짓(F) 일때는 no 위치의 값이 return 됩니다.

작업해 놓았던 mpg 데이터로 계속 이어서 실습 하겠습니다. mpg 데이터의 total 연비 변수를 만들었고, 이것의 평균을 구해 보았습니다. 여기서 total 값이 평균값 이상일 때 pass, 평균 이하일 때 fail을 부여하여 보겠습니다.

mpg_new$test <- ifelse(mpg_new$total >= mpg_avg , "pass", "fail")
head(mpg_new)
# A tibble: 6 x 13
#  manufacturer model displ  year  cyl trans   drv  city highway fl    class   total test 
# <chr>   <chr> <dbl> <int> <int> <chr>     <chr> <int>   <int> <chr> <chr>   <dbl> <chr>
# 1 audi     a4     1.8  1999     4 auto(l5)   f      18      29 p     compact  23.5 pass 
# 2 audi     a4     1.8  1999     4 manual(m5) f      21      29 p     compact  25   pass
# 3 audi     a4     2    2008     4 manual(m6) f      20      31 p     compact  25.5 pass 
# 4 audi     a4     2    2008     4 auto(av)   f      21      30 p     compact  25.5 pass
# 5 audi     a4     2.8  1999     6 auto(l5)   f      16      26 p     compact  21   pass 
# 6 audi     a4     2.8  1999     6 manual(m5) f      18      26 p     compact  22   pass 

 

중첩 조건문 사용하기

3 개 이상의 등급으로 표시하고 싶을 때에는 ifelse() 안에 ifelse() 를 중첩할 수 있습니다.

mpg_new$test <- ifelse(mpg_new$total >= mpg_avg , "A",
                      ifelse(mpg_new$total >= 15 , "B", "C"))

이때 ifelse 문은 괄호가 닫힐 때까지 유효하기 때문에 보기 좋게 개행을 이용해서 정리해 줄 수도 있습니다.

 

 

Source code

https://github.com/ark1st/Doit_R_ARKS_CODE/blob/master/var_Manu

불러오는 중입니다...

 

 

// 참고자료

영우, 『쉽게 배우는 R 데이터 분석』, 이지스 퍼블리싱, 2019

이영호, "확률과통계"  가천대학교, 2019.03.21

 

'Programming > R' 카테고리의 다른 글

데이터 정제하기 (데이터 클린징)  (0) 2019.04.15
데이터 전처리  (0) 2019.04.14
데이터 파악하기  (0) 2019.04.09
외부 데이터로 데이터프레임 만들기  (0) 2019.03.30
데이터 프레임 만들기  (0) 2019.03.30

데이터 파악하기

데이터 파악은 데이터 분석에 있어서 아주 중요합니다. 데이터를 먼저 받아 보게 되면 어떤 변수들이 있는지, 변수의 종류는 무엇인지 생각해야 합니다. 대략적인 특징들과 변수를 파악하고 나면 어떤 데이터 분석 기법을 적용할지에 대한 생각을 할 수 있게 됩니다.

데이터 파악을 돕는 여러 함수들이 있습니다. 쉽게 배우는 R 데이터 분석에서는 6개의 함수를 예로 들었습니다.

 

함수 기능
head() 데이터의 앞부분 출력
tail() 데이터의 뒷부분 출력
View() 뷰어 창에서 데이터 확인
dim() 데이터의 차원 출력
str() 데이터의 속성 출력
summary() 요약 통계량 출력

 

우리는 이 데이터 함수를 실습하기 위해서 ggplot2 패키지 에서 제공하는 mpg 데이터를 활용하겠습니다. mpg 데이터는 미국의 환경 보호국에서 제공하는 자동차 234종의 연비 데이터를 담고 있습니다.

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

 

1. head() - 데이터 앞부분 출력

데이터가 크다면 데이터 프레임 전체를 출력하기에는 화면에 너무 많은 내용이 출력되게 됩니다. head()는 데이터의 앞부분부터 6번째 행까지만 축약해서 출력해 줍니다.

head(mpg)

데이터 프레임의 이름 뒤에 쉼표를 쓰고 숫자를 입력하면 입력한 행까지의 데이터를 출력해 줍니다.

head(mpg,10) #10행까지 출력

2. tail() -

데이터 뒷부분 출력

head()는 앞부분의 내용을 출력했다면 tail()은 데이터의 뒷부분을 출력해 줍니다. 마찬가지로 뒤에서부터 여섯 행을 출력해 줍니다.

tail(mpg)

마찬가지로 데이터 프레임의 이름 뒤에 쉼표를 쓰고 숫자를 쓰면 원하는 만큼의 행의 데이터를 출력해 줍니다.

tail(mpg,10) #뒤에서부터 10행까지 출력

 

3. View() - 뷰어 창에서 확인

View()는 엑셀과 유사하게 생긴 뷰어 창에서 데이터의 내용을 확인할 수 있습니다.

View(mpg)

4. dim() - 데이터의 차원 출력

데이터의 차원 출력이라는 것은 쉽게 이야기 하자면 데이터가 몇 행 몇 열로 구성되는지 알아보는 것입니다.

dim(mpg)
## [1] 234  11

 

5. str() - 속성 확인

str() 은 데이터에 들어 있는 변수들의 속성을 보여 줍니다.

str(mpg)

6. summary() - 요약 통계량 산출

summary(mpg)

 

Source Code

https://github.com/ark1st/Doit_R_ARKS_CODE/blob/master/blog_mpg_%20certain_data

 

// 참고자료

김영우, 『쉽게 배우는 R 데이터 분석』, 이지스 퍼블리싱,

2019 이영호, "확률과통계" 가천대학교, 2019.03.21

'Programming > R' 카테고리의 다른 글

데이터 전처리  (0) 2019.04.14
변수 조작하기  (0) 2019.04.10
외부 데이터로 데이터프레임 만들기  (0) 2019.03.30
데이터 프레임 만들기  (0) 2019.03.30
변수  (0) 2019.03.27

데이터 분석을 할 때 전의 방식처럼 일일히 변수를 입력하여 적어주기는 힘들 것입니다. 그래서 외부에서 생성된 데이터를 분석하는 경우가 많습니다.

1. 엑셀 파일 불러오기

1.1 엑셀 파일 불러오기

엑셀 파일을 불러올 때에는 readxl 패키지를 사용합니다.

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

readxl 패키지 내의 read_excel()을 사용하여 액셀 파일을 불러올 수 있습니다. 프로젝트 파일이 있는 폴더 내에 엑셀 파일이 위치한다면 파일명을 적으면 됩니다.

ex_example <- read_excel("example.xlsx")

만약 프로젝트 폴더가 아닌 다른 폴더 내의 액셀 파일을 불러오려면 파일의 경로를 지정해야 합니다. 이때 파일 경로에서 사용하는 역슬래시 ' \ ' 는 슬래시 ' / ' 로 꼭 바꿔주어야 합니다.

df_example <- read_excel("C:/data/example.xlsx")

 

1.2 readxl()의 파라미터 알아보기

1.2.1. 엑셀 파일에 시트가 여러 개 있을 때

엑셀 파일에 시트가 여러 개 있을 때에는 sheet 파라미터를 사용합니다.

ex_example <- read_excel("example.xlsx", sheet = 3)

1.2.2. 엑셀 파일의 첫번째 행이 변수 명이 아닐때

read_excel() 함수는 엑셀 파일의 첫번째 행을 변수명으로 인식합니다. 변수명이 없이 첫번째 행부터 데이터가 시작된다면 한 행이 유실되는 경우가 생겨납니다. 이 때는 col_names 파라미터를 사용합니다. 논리형 벡터 타입으로 입력하여 F 또는 FALSE 를 입력하면 됩니다.

ex_example <-read_excel("example.xlsx", col_names = F)

1.2.3. 엑셀 파일에 빈 값이 있다면

엑셀 데이터 파일에 빈 값이 있다면 이것을 지정된 수(센티널)로 둘지 선택하실 수 있습니다. na 파라미터를 사용합니다.

ex_example <-read_excel("example.xlsx", na=0)

1.2.4. 원하는 행부터 가져오고 싶을 때

skip 파라미터를 사용하여 원하는 행부터 시작하여 데이터를 가져오실 수 있습니다.

ex_example <- read_excel("example.xlsx", skip=3)

 

2. CSV 파일 불러오기

2.1. CSV 파일 불러오기

.csv 파일은 Comma-separated values의 약자로 쉼표 ' , ' 로 구분된 범용 데이터 파일 입니다. 다양한 프로그램에서 지원하며 용량이 작기 때문에 자주 사용됩니다.

R에서 csv 파일을 불러올 때에는 별도의 패키지가 필요하지 않습니다. read.csv() 함수를 사용하여 불러올 수 있습니다.

csv_example <- read.csv("example.csv")

 

2.2. read.csv()의 파라미터 알아보기

2.2.1 첫 줄이 변수명이 아닐 때

엑셀 파일과 마찬가지로 read.csv() 도 첫 줄을 변수명으로 인식합니다. 이때는 header 파라미터를 사용합니다. header = T 혹은 header = TRUE 인 경우에는 첫 줄이 변수명인 경우, header = F 혹은 header = FALSE 는 첫 줄이 변수명이 아닌 경우에 사용합니다.

csv_example <- read.csv("example.csv", header = F)

2.2.1 열을 구분하는 기호를 지정하고 싶을 때

기본값은 콤마 ' , ' 이지만 열을 구분하는 기호를 다른 기호로 사용하였을 때에는 sep 파라미터를 사용합니다.

csv_example <- read.csv("example.csv", sep = " ") # 띄어쓰기로 구분되었을 때

2.2.2 문자가 들어 있는 파일을 읽어올 때

csv 파일을 불러올 때에는 factor 타입으로 불러오게 됩니다. 이때 문자가 들어 있다면 오류가 발생할 수 있으므로 stringAsFactors 파라미터를 F 혹은 FALSE 로 설정해야 합니다.

csv_example <- read.csv("example.csv", stringAsFactors = F)

2.2.3 원하는 행부터 가져오고 싶을 때

원하는 행부터 가져오고 싶다면 skip 파라미터를 사용합니다.

csv_example <- read.csv("example.csv", skip = 3)

 

 

// 참고자료

영우, 『쉽게 배우는 R 데이터 분석』, 이지스 퍼블리싱, 2019

이영호, "확률과통계"  가천대학교, 2019.03.21

'Programming > R' 카테고리의 다른 글

변수 조작하기  (0) 2019.04.10
데이터 파악하기  (0) 2019.04.09
데이터 프레임 만들기  (0) 2019.03.30
변수  (0) 2019.03.27
VSCode 에서 R 프로그래밍 환경 구축하기  (1) 2019.03.25

1. 데이터 프레임

데이터 프레임은 가장 많이 사용되는 데이터의 형태입니다. 행과 열로 구성된 사각형 모양의 표처럼 생겼습니다. 데이터 프레임의 열은 일반적으로 속성을 나타내며 컬럼(Column), 변수라고도 불립니다. 행은 데이터 한 개체에 대한 정보를 나타냅니다.

데이터를 처리할 때 데이터가 크다는 말은 행이 많다는 이야기 일 수도 있고 열이 많다는 이야기 일 수도 있습니다.

행이 많아지는 것은 100명의 데이터를 분석하다가 10만명의 데이터를 분석하는 것으로 비유할 수 있습니다. 이러한 상황에서 우리는 컴퓨터가 느려지고 심한 경우에는 데이터를 아예 불러오지도 못하는(!) 상황에 놓이기도 합니다. 이 문제를 해결하려면 더 성능이 좋은 장비를 구축하거나, 분산 처리 기술, 클라우드 서비스를 활용할 수 있습니다. 데이터의 행이 많아지더라도 분석 기술은 크게 달라지지 않습니다.

열이 많아지는 것은 변수가 늘어나는 것을 의미합니다. 데이터 분석은 변수들의 관계를 통해서 의미있는 결과를 도출합니다. 변수들끼리 조합하여 새로운 변수들을 만들기도 합니다. 이러한 측면에서 데이터의 열이 증가하게 된다면 조합할 수 있는 경우의 수가 기하급수적으로 늘어나게 됩니다. 그래서 더 복잡한 분석 방법을 도입해야 할 필요성이 생기게 됩니다.

이러한 측면에서 데이터의 행이 많은 것보다 열이 많은 것이 데이터 분석에서는 더 중요합니다.

 

2. 데이터 프레임 만들기

아래와 같은 데이터 프레임을 만들어 보겠습니다.

이름 영어 점수 수학 점수
KIM 100 80
LEE 80 90
PARK 70 100
KANG 90 90

1. 변수 생성

네 명의 이름, 영어점수, 수학점수를 각각 담은 변수를 생성합니다.

name <- c("KIM","LEE","PARK","KANG")
english <- c(100, 80, 70, 90)
math <- c(80, 90, 100, 90)

2. 변수로 데이터 프레임 만들기

df_exam <- data.frame(name, english, math)
df_exam

## [1] name english math
## [1] KIM   100   80
## [1] LEE   80   90
## [1] PARK   70   100
## [1] KANG   90   90

이때 새로운 변수를 추가 할 수도 있습니다. 국어 점수를 추가해 보겠습니다.

korean <- c(90, 80, 85, 95)
df_exam <- data.frame(name, english, math, korean)
df_exam

## [1] name english math korean
## [1] KIM   100   80  90
## [1] LEE   80   90  80
## [1] PARK   70   100  85
## [1] KANG   90   90  95

데이터 프레임 내에 있는 변수에 접근할 때에는 $ 기호를 사용합니다.

df_exam$english

## [1] 100 80 70 90

데이터 프레임을 한번에 만들 수도 있습니다. data.frame( ) 함수 안에 변수와 값을 나열해서 한 번에 만들 수 있습니다.

df_exam2 <- data.frame(name = c("KIM","LEE","PARK","KANG"),
					   english = c(100, 80, 70, 90),
  					   math = c(80, 90, 100, 90),
                       korean <- c(90, 80, 85, 95))
df_exam2

## [1] name english math korean
## [1] KIM   100   80  90
## [1] LEE   80   90  80
## [1] PARK   70   100  85
## [1] KANG   90   90  95

 

 

// 참고자료

영우, 『쉽게 배우는 R 데이터 분석』, 이지스 퍼블리싱, 2019

이영호, "확률과통계"  가천대학교, 2019.03.21

'Programming > R' 카테고리의 다른 글

데이터 파악하기  (0) 2019.04.09
외부 데이터로 데이터프레임 만들기  (0) 2019.03.30
변수  (0) 2019.03.27
VSCode 에서 R 프로그래밍 환경 구축하기  (1) 2019.03.25
R & R Studio 설치 (2)  (0) 2019.03.19

1. 변수

데이터 분석에 있어서 변수는 아주 중요합니다. 변수는 데이터 분석의 대상이 되는 '변하는 수'를 말합니다. 이와 다르게 변하지 않는 수를 상수라고 합니다.

변수를 구분하여 보면 범주형 변수와 연속형 변수가 있습니다.

  • 범주형 변수는 대상을 특성을 가진 그룹 범주 중 하나에 속하게 할 수 있는 변수입니다. 성별(남성과 여성), 학급(1반, 2반), 지역과 같은 변수들이 범주형 변수에 속합니다. 임의로 숫자를 부여하여 구분할 수 있지만 (남성 : 0, 여성 : 1) 이 숫자가 가진 의미는 없고 그룹의 특성의 다름을 표기하는 역할만 합니다. 주로 빈도분석, 교차분석과 같은 데이터 분석 방식을 적용하여 분석합니다.
  • 연속형 변수는 주로 숫자로 표기되고, 숫자 자체의 크기가 의미가 있는 변수입니다. 점수, 키, 몸무게와 같이 그 값 자체로 의미를 가지는 변수 입니다. 평균, 분산과 같은 기법을 적용하여 분석합니다.

자데이터 분석에 있어서 사용자의 필요에 따라 (가장 적합한 의사 결정을 얻기 위해서) 이 변수의 특성들을 적절히 조작할 수 있습니다. 가령 키와 몸무게 라는 연속형 변수를 BMI 값으로 환산하여 저체중, 정상, 과체중, 비만 과 같은 범주형 변수로 바꾸어 범주형 변수에서만 적용할 수 있는 데이터 분석 방식을 사용할 수도 있습니다. 그러나 이러한 경우에는 데이터를 나누는 기준이 합당해야만 합니다.

 

2. 변수 만들기

2.1. R에서의 변수

R에서의 변수는 <- 를 통하여 만들수 있습니다. (변수명 <- 대입할 숫자)

x <- 1

(= 연산자를 사용해서도 만들 수 있지만 추천하지는 않는 방법입니다.)

R에서는 여러 형태의 변수들을 만들 수 있습니다.

2.1.1. 정수형

x1 <- 138
x1
# [1] 138

 

2.1.2. 실수형

x2 <- 0.237
x2
# [1] 0.237

 

2.1.3 문자형(문자열형)

x3 <- "c"
x3
# [1] c
X4 <- "string"
x4
# [1] string

R에서는 문자와 문자열을 사용할때 두 경우 모두 문자열로 처리합니다.

 

3. 변수의 사용

3.1. 변수의 출력

위 예제에서처럼 변수를 출력할 때에는 변수 명을 사용합니다.

x1 <- "변수 출력"
x1  #변수를 출력합니다.

# [1] 변수 출력

 

3.2. 정수형 변수의 계산

x2 <- 3
x2 * 3

# [1] 9

정수형 변수에 연산자를 사용하여 계산할 수 있습니다.

 

4. 여러 값으로 구성된 변수

R에서는 하나에 변수에 여러 가지 값을 저장할 수 있습니다. 이렇게 하나에 변수에 1차원적으로 여러가지 값을 저장한 것을 R에서는 벡터(Vector) 라고 합니다.

R에서 변수에 여러가지 값을 넣는 방법에는 여러가지가 있습니다.

4.1. c() 함수 (combine)

var1 <- c(1,3,8,14,24,25,0,237)
var1

# [1] 1 3 8 14 24 25 0 237

콜론 ( : ) 을 이용하면 1씩 증가하는 연속된 값을 넣을 수 있습니다.

var2 <- c(1:5)
var2

# [1] 1 2 3 4 5

문자 또한 c() 함수를 이용하여 여러개의 문자로 이루어진 변수를 만들 수 있습니다.

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

#[1] "a" "b" "c"

문자열 또한 마찬가지 입니다.

str2 <- c("R","String","Combine","Test")
str2

# [1] "R" "String" "Combine" "Test"

 

4.2. seq() 함수 (sequence)

seq 함수를 이용해서 연속된 값을 지닌 변수를 만들 수 있습니다.

var3 <- seq(1,5)
var3

# [1] 1 2 3 4 5 

파라미터를 사용하여 일정량 증가하는 연속된 값을 지닌 변수를 만들 수도 있습니다.

var4 <- seq(1,10, by = 2)
var4

# [1] 1 3 5 7 9

 

5. 여러 값으로 구성된 변수의 연산

여러 값으로 구성된 변수 또한 연산할 수 있습니다.

  1. 여러 값으로 구성된 변수와 숫자 연산은 여러 값으로 구성된 변수들에 일괄적으로 숫자 연산이 처리됩니다.
var_add <- c(1,2,3,4,5)
var_add + 2

# [1] 3 4 5 6 7
  1. 여러 값으로 구성된 변수끼리 연산하면 같은 순서에 위치한 값끼리 연산합니다.
var5 <- (1, 3, 8, 14, 24)
var6 <- (3, 15, 3, 18, 16)
var5 + var6

# [1] 4 18 11 32 40
  1. 여러 값으로 구성된 변수를 연산할 때 변수의 구성 원소의 수가 다를 경우에는 원소의 개수가 작은 변수를 반복해서 사용합니다.
var7 = c(1:5)
var8 = seq(1,7)
var9 = seq(1,10)

var7 + var8 #경고 메시지 출력
# [1] 1 4 6 8 10 7 9 11

var7 + var9
# [1] 1 4 6 8 10 7 9 11 13 15 

6. 변수 생성의 규칙

  • 알아보기 쉽고 기억하기 쉽도록 의미를 담아 만들어야 합니다.
  • 변수명은 특수문자 중 마침표 . 와 언더바 _ 와 영어 숫자로만 사용 가능합니다.
  • 변수명은 숫자나 언더바 _ 로 시작할 수 없습니다.
  • 변수명이 마침표로 시작하면 바로 뒤에는 영어가 와야 합니다.
  • Keyword 를 변수명으로 사용할 수 없습니다.

 

 

// 참고자료

영우, 『쉽게 배우는 R 데이터 분석』, 이지스 퍼블리싱, 2019

이영호, "확률과통계"  가천대학교, 2019.03.21

'Programming > R' 카테고리의 다른 글

외부 데이터로 데이터프레임 만들기  (0) 2019.03.30
데이터 프레임 만들기  (0) 2019.03.30
VSCode 에서 R 프로그래밍 환경 구축하기  (1) 2019.03.25
R & R Studio 설치 (2)  (0) 2019.03.19
R & R Studio 설치 (1)  (0) 2019.03.19

VScode(Visual Studio Code)는 마이크로소프트에서 만든 텍스트 편집기 입니다. Github에서 만들어진 에디터 Atom의 Electron 프레임워크를 기반으로 만들어졌으며 마이크로소프트의 개발툴 중 최초로 크로스 플랫폼을 지원합니다. 즉, Windows, MacOS, LINUX 모두 지원하는 소프트웨어 입니다.

방대한 플러그인 환경과 개발 환경을 갖추고 있기 때문에 유사 IDE라고도 불리기도 하는 이 소프트웨어에서 R을 사용하는 방법을 알아보겠습니다.

 

  1. VSCode 를 열은 후 좌측의 확장 탭 (Ctrl + Shift + X) 을 클릭합니다.


  1. 확장 탭에서 R을 검색합니다.


  1. R 플러그인을 설치합니다. (기존의 R과 다른 VSCode 플러그인 이므로 R은 설치되어 있어야 합니다.)


  1. 다 설치가 된 후 Ctrl + Shift+ P 에서 Setting 을 검색하여 User Settings로 가줍니다.


  1. Extensions 에서 R을 찾은 후 R이 설치된 폴더를 지정해 줍니다.


설치가 완료되었습니다.


 

파일을 새로 만들고 확장자를 *.R 형태로 지정하여 R 프로젝트를 생성할 수 있습니다.


 

코드를 입력하고 블럭 처리 한 다음 Ctrl + Enter 로 코드를 실행시킬 수 있습니다.


qplot 과 같은 그래프 출력은 R 소프트웨어를 통해 출력됩니다.


 



'Programming > R' 카테고리의 다른 글

외부 데이터로 데이터프레임 만들기  (0) 2019.03.30
데이터 프레임 만들기  (0) 2019.03.30
변수  (0) 2019.03.27
R & R Studio 설치 (2)  (0) 2019.03.19
R & R Studio 설치 (1)  (0) 2019.03.19

이번 글에서는 R을 다루는데 도움을 주는 IDE (통합 개발 환경)인 R Studio 를 설치하여 보겠습니다.


1. https://www.rstudio.com/ 에 접속하여 Download Rstudio 를 선택합니다.

2. 더 많은 기능을 가진 제품들이 있지만 Free 버전을 선택합니다.

3. 운영체제에 맞는 버전을 선택하여 설치합니다.

5. 설치를 시작합니다. 다음.

6. 설치 폴더를 지정합니다. 

7. 시작 메뉴에 폴더를 생성합니다. 만들지 않을 경우에는 바로가기 아이콘을 만들지 않겠습니다에 체크합니다.

8. 설치 완료.

9. 이렇게 설치가 완료되었습니다.


'Programming > R' 카테고리의 다른 글

외부 데이터로 데이터프레임 만들기  (0) 2019.03.30
데이터 프레임 만들기  (0) 2019.03.30
변수  (0) 2019.03.27
VSCode 에서 R 프로그래밍 환경 구축하기  (1) 2019.03.25
R & R Studio 설치 (1)  (0) 2019.03.19

+ Recent posts