임의의 데이터 만들기 (wakefield)
데이터분석을 하다 보면 필요한 임의의 데이터 셋이 필요한 경우가 있다.
이를 위해 해들리 위컴이 좋은 패키지를 만들었다. "wakefield" 패키지다.
#임의의 데이터 프레임 만들기 (49개 항목) r_data_frame()
# 나이 주사위 머리카락 군대 섹스\_포함
# 동물 DNA 키 월 담배를 피우다
# 대답 도브 소득 이름 속도
# 지역 가짜의 인터넷 브라우저 정상 상태
# 자동차 교육 아이큐 정치적인 끈
# 어린이들 고용 언어 경주 높은
# 동전 눈 수준 종교 유효한
# 색깔 등급 리커트 수능 년도
# 날짜\_스탬프 등급\_레벨 lorem\_ipsum 문장 우편 번호
# 죽음 그룹 결혼 섹스
# age dice hair military sex\_inclusive
# animal dna height month smokes
# answer dob income name speed
# area dummy internet\_browser normal state
# car education iq political string
# children employment language race upper
# coin eye level religion valid
# color grade likert sat year
# date\_stamp grade\_level lorem\_ipsum sentence zip\_code
# death group marital sex
예를 들면 아래와 같이 치면 이렇게 나온다. 흑인,히스패닉, 백인이 임의로 10개가 나온다.
> race(n=10)
[1] White Hispanic Black White Hispanic White
[7] White White Black White
500개의 데이터를 데이터프레임으로 만들려면 이렇게 한다.
> r_data_frame(
+ n = 500,
+ race
+ )
# A tibble: 500 × 1
Race
<fct>
1 Black
2 Black
3 Hispanic
4 White
5 Hispanic
6 White
7 Hispanic
8 White
9 White
10 White
# ℹ 490 more rows
# ℹ Use `print(n = ...)` to see more rows
49개의 항목을 섞어서 데이터 셋을 만들수도 있다.
> r_data_frame(
+ n = 500,
+ id,
+ race,
+ age,
+ sex,
+ hour,
+ iq,
+ height,
+ died
+ )
# A tibble: 500 × 8
ID Race Age Sex Hour IQ Height Died
<chr> <fct> <int> <fct> <times> <dbl> <dbl> <lgl>
1 001 White 27 Female 00:00:00 99 69 TRUE
2 002 Black 89 Male 00:00:00 106 69 TRUE
3 003 White 19 Male 00:00:00 85 66 TRUE
4 004 Black 60 Male 00:00:00 99 65 TRUE
5 005 White 22 Male 00:00:00 100 68 FALSE
6 006 Black 44 Male 00:00:00 92 68 TRUE
7 007 White 40 Male 00:00:00 90 72 TRUE
8 008 White 20 Female 00:00:00 109 75 FALSE
9 009 Asian 32 Male 00:30:00 109 69 FALSE
10 010 Hispanic 75 Female 00:30:00 87 70 TRUE
# ℹ 490 more rows
# ℹ Use `print(n = ...)` to see more rows
결측치도 넣어서 만들 수 있다.
> # 무작위로 결측치를 넣을때
> r_data_frame(
+ n = 30,
+ id,
+ race,
+ age,
+ sex,
+ hour,
+ iq,
+ height,
+ died,
+ Scoring = rnorm,
+ Smoker = valid
+ ) %>%
+ r_na(prob=.4)
# A tibble: 30 × 10
ID Race Age Sex Hour IQ Height Died Scoring
<chr> <fct> <int> <fct> <times> <dbl> <dbl> <lgl> <dbl>
1 01 White NA Male 00:00:00 NA NA TRUE -1.31
2 02 Black 58 NA NA 108 71 FALSE 2.67
3 03 White NA NA 01:30:00 NA NA NA 0.211
4 04 White 27 NA NA 120 70 FALSE -0.316
5 05 White 45 Male 03:30:00 109 65 NA 0.312
6 06 White NA NA NA 100 NA NA NA
7 07 NA NA Male 05:00:00 76 71 FALSE -0.930
8 08 NA 84 Female 05:30:00 99 NA FALSE NA
9 09 NA NA NA 10:00:00 107 NA FALSE 0.143
10 10 NA 40 NA 10:30:00 NA 66 NA 0.142
# ℹ 20 more rows
# ℹ 1 more variable: Smoker <lgl>
# ℹ Use `print(n = ...)` to see more rows
설문조사 대답지도 임의로 만들 수 있다.
> set.seed(10)
> as_integer(r_series(likert, j = 5, n=10, name = "Item")) # 숫자로
# A tibble: 10 × 5
Item_1 Item_2 Item_3 Item_4 Item_5
<int> <int> <int> <int> <int>
1 3 4 4 4 5
2 5 1 5 3 1
3 4 1 4 5 4
4 2 1 4 4 5
5 3 5 5 2 5
6 4 2 2 3 4
7 4 4 1 4 1
8 4 1 4 1 2
9 1 4 3 5 3
10 3 1 3 5 5