4  Manajemen Data

Buku ini merupakan pengantar untuk belajar

library(haven)
wvs7idn <- read_dta("WVS7IDN.dta")

4.1 Mempersiapkan data

You can also embed plots, for example:

── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr     1.1.1     ✔ readr     2.1.4
✔ forcats   1.0.0     ✔ stringr   1.5.0
✔ ggplot2   3.4.2     ✔ tibble    3.2.1
✔ lubridate 1.9.2     ✔ tidyr     1.3.0
✔ purrr     1.0.1     
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag()    masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
wvs7idn <- as.data.frame(apply(wvs7idn, 2, function(x) as.numeric(x)))

4.1.1 Recode

wvs7idn <- mutate(wvs7idn, happy.x = case_when(
  happy  == 1 ~ 4,
  happy  == 2 ~ 3,
  happy  == 3 ~ 2,
  happy  == 4 ~ 1,
  TRUE ~ NA_real_
))


wvs7idn <- mutate(wvs7idn, health.x = case_when(
  health  == 1 ~ 5,
  health  == 2 ~ 4,
  health  == 3 ~ 3,
  health  == 4 ~ 2,
  health  == 5 ~ 1,
  TRUE ~ NA_real_
))

4.1.2 Membuat dummy variable

library(labelled)
look_for(wvs7idn, "urbrural")
 pos variable label col_type missing values
 3   urbrural —     dbl      0             
wvs7idn$urban <- ifelse(wvs7idn$urbrural==1,1,0)
wvs7idn$rural <- ifelse(wvs7idn$urbrural==2,1,0)

## 2b. Dummy Gender
look_for(wvs7idn, "gender")
 pos variable label col_type missing values
 16  gender   —     dbl      0             
wvs7idn$female <- ifelse(wvs7idn$gender==2,1,0)
wvs7idn$male <- ifelse(wvs7idn$gender==1,1,0)


## 2c. Dummy Marital
look_for(wvs7idn, "marital")
 pos variable label col_type missing values
 18  marital  —     dbl      0             
wvs7idn$married <- ifelse(wvs7idn$marital==1,1,0)
wvs7idn$livtog <- ifelse(wvs7idn$marital==2,1,0)
wvs7idn$divorced <- ifelse(wvs7idn$marital==3,1,0)
wvs7idn$separated <- ifelse(wvs7idn$marital==4,1,0)
wvs7idn$widowed <- ifelse(wvs7idn$marital==5,1,0)
wvs7idn$single <- ifelse(wvs7idn$marital==6,1,0)

4.1.3 Membuat variabel baru

##Membuat variabel age kuadrat
wvs7idn <- mutate(wvs7idn, age2=age*age)


##Menjumlah total kepercayaan (perlu recode karena nilai terbalik)
wvs7idn <- mutate(wvs7idn, trfam.x = case_when(
  trfam  == 1 ~ 4,
  trfam  == 2 ~ 3,
  trfam  == 3 ~ 2,
  trfam  == 4 ~ 1,
  TRUE ~ NA_real_
))

wvs7idn <- mutate(wvs7idn, trng.x = case_when(
  trng  == 1 ~ 4,
  trng  == 2 ~ 3,
  trng  == 3 ~ 2,
  trng  == 4 ~ 1,
  TRUE ~ NA_real_
))

wvs7idn <- mutate(wvs7idn, trknow.x = case_when(
  trknow  == 1 ~ 4,
  trknow  == 2 ~ 3,
  trknow  == 3 ~ 2,
  trknow  == 4 ~ 1,
  TRUE ~ NA_real_
))

wvs7idn <- mutate(wvs7idn, trmeet.x = case_when(
  trmeet  == 1 ~ 4,
  trmeet  == 2 ~ 3,
  trmeet  == 3 ~ 2,
  trmeet  == 4 ~ 1,
  TRUE ~ NA_real_
))

wvs7idn <- mutate(wvs7idn, trareg.x = case_when(
  trareg  == 1 ~ 4,
  trareg  == 2 ~ 3,
  trareg  == 3 ~ 2,
  trareg  == 4 ~ 1,
  TRUE ~ NA_real_
))

wvs7idn <- mutate(wvs7idn, tranat.x = case_when(
  tranat  == 1 ~ 4,
  tranat  == 2 ~ 3,
  tranat  == 3 ~ 2,
  tranat  == 4 ~ 1,
  TRUE ~ NA_real_
))


### Penjumlahan variabel kepercayaan
wvs7idn <- mutate(wvs7idn, trust_all=trfam.x+trng.x+trknow.x+trmeet.x+trareg.x+tranat.x)