cbind()라는 함수를 사용할 경우 매트릭스 데이터가 되고 data.frame()이라는 함수를 사용하면 데이터프레임 데이터가 된다. 그러나 타이디버스 라이브러리 함수들을 활용한 데이터 관리가 훨씬 편리하다. 타이디데이터에서 사용하는 R 데이터 오브젝트를 티블(tibble)이라고 부른다.
#변수지정
name = c('연돌이','세순이')
born = c("1999-3-2","1999-3-3")
year = c(2L,4L)
grade = c('A+','A-')
height = c(178,170)
타이디버스 라이브러리를 먼저 구동한 후, tibble() 함수에 지정된 변수들을 차례대로 입력하면 된다.
# 타이디버스 라이브러리
library('tidyverse')
#티블데이터 설정
my_first_tibble = tibble(name,born,year,grade,height)
my_first_tibble
## # A tibble: 2 x 5
## name born year grade height
## <chr> <chr> <int> <chr> <dbl>
## 1 연돌이 1999-3-2 2 A+ 178
## 2 세순이 1999-3-3 4 A- 170
티블데이터 역시 데이터프레임과 마찬가지로 가로줄과 세로줄의 위치와 구역을 지정하며 인덱싱을 통해 해당 데이터의 일부를 뽑아낼 수 있다.
#데이터 인덱싱
my_first_tibble[,2:4]
## # A tibble: 2 x 3
## born year grade
## <chr> <int> <chr>
## 1 1999-3-2 2 A+
## 2 1999-3-3 4 A-
#파일 위치 파악
getwd()
## [1] "D:/tidyverse"
파이프 오퍼레이터(%>%)는 타이디버스 라이브러를 사용하여 작성된 R코드를 단순화시켜준다. 흔히 ‘A then B’ 라고 읽는다.
# 엑셀 파일 패키지
library('readxl')
read_xls('data_library.xls') %>%
count(기간)
## # A tibble: 7 x 2
## 기간 n
## * <chr> <int>
## 1 2010 26
## 2 2011 26
## 3 2012 26
## 4 2013 26
## 5 2014 26
## 6 2015 26
## 7 2016 26
#변수선별(select)
seoul_library = read_xls("data_library.xls")
seoul_library2 = seoul_library %>%
select(기간,자치구,계)
seoul_library2
## # A tibble: 182 x 3
## 기간 자치구 계
## <chr> <chr> <dbl>
## 1 2010 합계 464
## 2 2010 종로구 50
## 3 2010 중구 57
## 4 2010 용산구 18
## 5 2010 성동구 6
## 6 2010 광진구 9
## 7 2010 동대문구 17
## 8 2010 중랑구 4
## 9 2010 성북구 16
## 10 2010 강북구 10
## # ... with 172 more rows
1단계. data_TESS3_131.sav 데이터 불러오기
2단계. PPGENDER, PPAGE, PARTY7로 시작하는 변수들 선별
3단계. 40-59세의 남성응답자 선별한 후 티블 데이터로 저장
4단계. 이렇게 얻은 데이터에서 PARTY7 변수의 분포확인
# SPSS 파일 패키지
library(haven)
mydata_131 = read_spss('data_TESS3_131.sav') %>%
select(PPGENDER, PPAGE, PARTY7) %>%
filter(PPGENDER==1 & (PPAGE>=40 & PPAGE <=59))
mydata_131 %>%
count(as_factor(PARTY7))
## # A tibble: 7 x 2
## `as_factor(PARTY7)` n
## * <fct> <int>
## 1 Strong Republican 19
## 2 Not Strong Republican 23
## 3 Leans Republican 19
## 4 Undecided/Independent/Other 4
## 5 Leans Democrat 15
## 6 Not Strong Democrat 19
## 7 Strong Democrat 11
data131 = read_spss('data_TESS3_131.sav') %>%
select(starts_with('PP'))
by_data_131 = data131 %>%
group_by(PPGENDER)
by_data_131 %>%
print(n=2)
## # A tibble: 593 x 24
## # Groups: PPGENDER [2]
## PPAGE ppagecat ppagect4 PPEDUC PPEDUCAT PPETHM PPGENDER PPHHHEAD
## <dbl> <dbl+lb> <dbl+lb> <dbl+lb> <dbl+lb> <dbl+l> <dbl+lb> <dbl+lb>
## 1 29 2 [25-3~ 1 [18-2~ 12 [Bac~ 4 [Bach~ 1 [Whi~ 1 [Male] 0 [No]
## 2 53 4 [45-5~ 3 [45-5~ 9 [HIG~ 2 [High~ 1 [Whi~ 2 [Fema~ 1 [Yes]
## # ... with 591 more rows, and 16 more variables: PPHHSIZE <dbl+lbl>,
## # PPHOUSE <dbl+lbl>, PPINCIMP <dbl+lbl>, PPMARIT <dbl+lbl>,
## # PPMSACAT <dbl+lbl>, PPREG4 <dbl+lbl>, ppreg9 <dbl+lbl>,
## # PPRENT <dbl+lbl>, PPSTATEN <dbl+lbl>, PPT01 <dbl+lbl>,
## # PPT25 <dbl+lbl>, PPT612 <dbl+lbl>, PPT1317 <dbl+lbl>,
## # PPT18OV <dbl+lbl>, PPWORK <dbl+lbl>, PPNET <dbl+lbl>