데이터 전처리

임의의 데이터 만들기 (wakefield)

r-code-for-data-analysis 2023. 5. 30. 09:14

데이터분석을 하다 보면 필요한 임의의 데이터 셋이 필요한 경우가 있다. 

이를 위해 해들리 위컴이 좋은 패키지를 만들었다. "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
728x90
반응형