50 min to read
R-Studio Dplyr Part.3
R-Studio의 Dplyr를 이용한 데이터 필터 Part.3
R-Studio 의 정규식
SQL 처럼 다루게 해줍니다!
파일 소스
우클릭 -> 다른이름으로 링크저장 이용해 주세요
jumsu.csv
R정형데이터처리하기.xlsx
progbook.csv
함수 예제
# R정형데이터처리하기.xlsx 파일을 읽어 들이세요.
# 가전제품1~가전제품3 시트를 읽어 와서 하나의 데이터프레임(이름 : myframe)에 병합하시오.
# 단, 분기 구분이 있어야 하므로 quarter(분기 컬럼 이름)을 하나 추가하도록 한다.
library(rJava)
library(xlsx)
myEncoding = 'UTF-8'
filename = 'R정형데이터처리하기.xlsx'
sheets <- seq(3, 5)
df <- data.frame()
# 3 4 5 시트에 있는 행을 전부 데이타 프레임에 전부 불러옴
for(sheet in sheets) {
dframe <- read.xlsx(file=filename, sheetIndex = sheet, encoding = myEncoding)
dframe$"quarter" <- paste(sheet-2, "사분기", sep="")
df <- rbind(df, dframe)
}
df
# myframe에서 quarter가 1사분기인 경우만 출력하세요.
quarter_1 <- df[df$quarter=="1사분기", ]
quarter_1
# myframe에서 3사분기가 아닌 경우만 출력하세요.
not_Quarter_3 <- df[df$quarter!="3사분기", ]
not_Quarter_3
# 전체에서 불량품 수 40을 초과한 경우만 출력하세요.
inferior <- df[df$불량품>40, ]
inferior
# 1일생산량이 100~150인 경우만 출력하세요.(between 사용)
df[between(df$X1일생산량, 100, 150), ]
# 1사분기이면서 1일생산량이 200이하인 경우만 출력하세요.
user_Con01 <- df %>% filter(quarter == "1사분기" & X1일생산량 <= 200)
user_Con01
# 총생산량이 10000 이상이거나 불량품이 35이하인 경우만 출력하세요.
user_Con02 <- df %>%filter(총생산량 >= 10000 | 불량품 <= 35)
user_Con02
# # %in% 기호를 사용하면 코드를 좀 더 간결하게 작성할 수 있다.
# # %in% 기호와 c() 함수를 이용해 조건 목록을 입력하면 된다.
# # 1사분기, 3사분기 데이터를 출력하시오.
use_In <- df %>% filter(quarter %in% c("1사분기", "2사분기"))
use_In
# 1사분기 정보를 변수 quarter1에 저장하시오.
quat1 <- df[df$quarter == "1사분기", ]
quat1
# 1사분기 정보를 변수 quarter2에 저장하시오.
quat2 <- quat1
quat2
# 변수 quarter1의 1일생산량 평균을 구하시오.(mean 함수)
mean(quat1$X1일생산량)
# 변수 quarter2의 총생산량의 총합을 구하시오.(sum 함수)
sum(quat2$총생산량)
# 1사분기의 총생산량 컬럼만 추출하시오.
q1_make <- df %>% filter(quarter == "1사분기") %>% select(총생산량)
q1_make
# 전체에서 제품명과 1일생산량의 앞부분 10행까지만 추출하시오.
# 힌트 : head() 함수도 사용할 수 있다.
user_Con03 <- df %>% select(제품명, X1일생산량)
head(user_Con03, 10)
# 출고량를 기준으로 오름차순으로 정렬하시오.
user_Asc <- df %>% arrange(출고량)
user_Asc
# 총생산량을 기준으로 내림차순으로 정렬하시오.
user_Desc <- df %>% arrange(desc(총생산량))
user_Desc
# 분기(quarter)별 오름차순 정렬 후, 불량품으로 내림차순 정렬하시오.
user_Sort <- df %>% arrange(quarter, desc(불량품))
user_Sort
# 불량률 컬럼을 만들어 보되, 소수점 3자리까지 표현하시오.
# 불량률 = 불량품 / 총생산량
prob <- ddply(df, .(제품명), transform, 불량률=불량품/총생산량)
prob
# result 컬럼을 만들어 보세요.
# result 컬럼은 불량률 컬럼이 얼마이상이면 'bad', 아니면 'good'이라는 값을 저장해야 한다.
# 힌트 : ifelse 함수를 사용하면 된다.
prob2 <- ddply(df, .(제품명), transform, result=ifelse(불량품/총생산량>=0.004, "bad", "good"))
prob2
# 불량률 컬럼 기준으로 오름차순 정렬하시오.
prob %>% arrange(불량률)
# 분기별로 총생산량의 평균과 불량품의 총합 및 빈도수를 구해 보세요(힌트 : n() 함수)
prob3 <- ddply(df, .(제품명), summarise, 총생산량평균=mean(총생산량), 불량품총합=sum(불량품), 빈도수=dplyr::n())
prob3
콘솔 결과
> # R정형데이터처리하기.xlsx 파일을 읽어 들이세요.
> # 가전제품1~가전제품3 시트를 읽어 와서 하나의 데이터프레임(이름 : myframe)에 병합하시오.
> # 단, 분기 구분이 있어야 하므로 quarter(분기 컬럼 이름)을 하나 추가하도록 한다.
> library(rJava)
> library(xlsx)
>
> myEncoding = 'UTF-8'
> filename = 'R정형데이터처리하기.xlsx'
>
>
> sheets <- seq(3, 5)
> df <- data.frame()
>
> # 3 4 5 시트에 있는 행을 전부 데이타 프레임에 전부 불러옴
> for(sheet in sheets) {
+ dframe <- read.xlsx(file=filename, sheetIndex = sheet, encoding = myEncoding)
+ dframe$"quarter" <- paste(sheet-2, "사분기", sep="")
+ df <- rbind(df, dframe)
+ }
> df
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 미니오븐 100 60 6000 24 5976 1사분기
2 전기밥솥 150 60 9000 36 8964 1사분기
3 믹서기 200 60 12000 48 11952 1사분기
4 전자레인지 120 60 7200 29 7171 1사분기
5 미니냉장고 80 60 4800 19 4781 1사분기
6 가습기 200 60 12000 48 11952 1사분기
7 선풍기 180 60 10800 43 10757 1사분기
8 미니오븐 100 64 6400 26 6374 2사분기
9 전기밥솥 150 64 9600 39 9561 2사분기
10 믹서기 200 64 12800 52 12748 2사분기
11 전자레인지 120 64 7680 31 7649 2사분기
12 미니냉장고 80 64 5120 21 5099 2사분기
13 가습기 200 64 12800 52 12748 2사분기
14 선풍기 180 64 11520 47 11473 2사분기
15 미니오븐 100 62 6200 22 6178 3사분기
16 전기밥솥 150 62 9300 33 9267 3사분기
17 믹서기 200 62 12400 43 12357 3사분기
18 전자레인지 120 62 7440 26 7414 3사분기
19 미니냉장고 80 62 4960 17 4943 3사분기
20 가습기 200 62 12400 43 12357 3사분기
21 선풍기 180 62 11160 39 11121 3사분기
>
> # myframe에서 quarter가 1사분기인 경우만 출력하세요.
> quarter_1 <- df[df$quarter=="1사분기", ]
> quarter_1
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 미니오븐 100 60 6000 24 5976 1사분기
2 전기밥솥 150 60 9000 36 8964 1사분기
3 믹서기 200 60 12000 48 11952 1사분기
4 전자레인지 120 60 7200 29 7171 1사분기
5 미니냉장고 80 60 4800 19 4781 1사분기
6 가습기 200 60 12000 48 11952 1사분기
7 선풍기 180 60 10800 43 10757 1사분기
>
> # myframe에서 3사분기가 아닌 경우만 출력하세요.
> not_Quarter_3 <- df[df$quarter!="3사분기", ]
> not_Quarter_3
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 미니오븐 100 60 6000 24 5976 1사분기
2 전기밥솥 150 60 9000 36 8964 1사분기
3 믹서기 200 60 12000 48 11952 1사분기
4 전자레인지 120 60 7200 29 7171 1사분기
5 미니냉장고 80 60 4800 19 4781 1사분기
6 가습기 200 60 12000 48 11952 1사분기
7 선풍기 180 60 10800 43 10757 1사분기
8 미니오븐 100 64 6400 26 6374 2사분기
9 전기밥솥 150 64 9600 39 9561 2사분기
10 믹서기 200 64 12800 52 12748 2사분기
11 전자레인지 120 64 7680 31 7649 2사분기
12 미니냉장고 80 64 5120 21 5099 2사분기
13 가습기 200 64 12800 52 12748 2사분기
14 선풍기 180 64 11520 47 11473 2사분기
>
> # 전체에서 불량품 수 40을 초과한 경우만 출력하세요.
> inferior <- df[df$불량품>40, ]
> inferior
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
3 믹서기 200 60 12000 48 11952 1사분기
6 가습기 200 60 12000 48 11952 1사분기
7 선풍기 180 60 10800 43 10757 1사분기
10 믹서기 200 64 12800 52 12748 2사분기
13 가습기 200 64 12800 52 12748 2사분기
14 선풍기 180 64 11520 47 11473 2사분기
17 믹서기 200 62 12400 43 12357 3사분기
20 가습기 200 62 12400 43 12357 3사분기
>
> # 1일생산량이 100~150인 경우만 출력하세요.(between 사용)
> df[between(df$X1일생산량, 100, 150), ]
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 미니오븐 100 60 6000 24 5976 1사분기
2 전기밥솥 150 60 9000 36 8964 1사분기
4 전자레인지 120 60 7200 29 7171 1사분기
8 미니오븐 100 64 6400 26 6374 2사분기
9 전기밥솥 150 64 9600 39 9561 2사분기
11 전자레인지 120 64 7680 31 7649 2사분기
15 미니오븐 100 62 6200 22 6178 3사분기
16 전기밥솥 150 62 9300 33 9267 3사분기
18 전자레인지 120 62 7440 26 7414 3사분기
>
> # 1사분기이면서 1일생산량이 200이하인 경우만 출력하세요.
> user_Con01 <- df %>% filter(quarter == "1사분기" & X1일생산량 <= 200)
> user_Con01
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 미니오븐 100 60 6000 24 5976 1사분기
2 전기밥솥 150 60 9000 36 8964 1사분기
3 믹서기 200 60 12000 48 11952 1사분기
4 전자레인지 120 60 7200 29 7171 1사분기
5 미니냉장고 80 60 4800 19 4781 1사분기
6 가습기 200 60 12000 48 11952 1사분기
7 선풍기 180 60 10800 43 10757 1사분기
>
> # 총생산량이 10000 이상이거나 불량품이 35이하인 경우만 출력하세요.
> user_Con02 <- df %>%filter(총생산량 >= 10000 | 불량품 <= 35)
> user_Con02
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 미니오븐 100 60 6000 24 5976 1사분기
2 믹서기 200 60 12000 48 11952 1사분기
3 전자레인지 120 60 7200 29 7171 1사분기
4 미니냉장고 80 60 4800 19 4781 1사분기
5 가습기 200 60 12000 48 11952 1사분기
6 선풍기 180 60 10800 43 10757 1사분기
7 미니오븐 100 64 6400 26 6374 2사분기
8 믹서기 200 64 12800 52 12748 2사분기
9 전자레인지 120 64 7680 31 7649 2사분기
10 미니냉장고 80 64 5120 21 5099 2사분기
11 가습기 200 64 12800 52 12748 2사분기
12 선풍기 180 64 11520 47 11473 2사분기
13 미니오븐 100 62 6200 22 6178 3사분기
14 전기밥솥 150 62 9300 33 9267 3사분기
15 믹서기 200 62 12400 43 12357 3사분기
16 전자레인지 120 62 7440 26 7414 3사분기
17 미니냉장고 80 62 4960 17 4943 3사분기
18 가습기 200 62 12400 43 12357 3사분기
19 선풍기 180 62 11160 39 11121 3사분기
>
> # # %in% 기호를 사용하면 코드를 좀 더 간결하게 작성할 수 있다.
> # # %in% 기호와 c() 함수를 이용해 조건 목록을 입력하면 된다.
> # # 1사분기, 3사분기 데이터를 출력하시오.
> use_In <- df %>% filter(quarter %in% c("1사분기", "2사분기"))
> use_In
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 미니오븐 100 60 6000 24 5976 1사분기
2 전기밥솥 150 60 9000 36 8964 1사분기
3 믹서기 200 60 12000 48 11952 1사분기
4 전자레인지 120 60 7200 29 7171 1사분기
5 미니냉장고 80 60 4800 19 4781 1사분기
6 가습기 200 60 12000 48 11952 1사분기
7 선풍기 180 60 10800 43 10757 1사분기
8 미니오븐 100 64 6400 26 6374 2사분기
9 전기밥솥 150 64 9600 39 9561 2사분기
10 믹서기 200 64 12800 52 12748 2사분기
11 전자레인지 120 64 7680 31 7649 2사분기
12 미니냉장고 80 64 5120 21 5099 2사분기
13 가습기 200 64 12800 52 12748 2사분기
14 선풍기 180 64 11520 47 11473 2사분기
>
> # 1사분기 정보를 변수 quarter1에 저장하시오.
> quat1 <- df[df$quarter == "1사분기", ]
> quat1
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 미니오븐 100 60 6000 24 5976 1사분기
2 전기밥솥 150 60 9000 36 8964 1사분기
3 믹서기 200 60 12000 48 11952 1사분기
4 전자레인지 120 60 7200 29 7171 1사분기
5 미니냉장고 80 60 4800 19 4781 1사분기
6 가습기 200 60 12000 48 11952 1사분기
7 선풍기 180 60 10800 43 10757 1사분기
>
> # 1사분기 정보를 변수 quarter2에 저장하시오.
> quat2 <- quat1
> quat2
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 미니오븐 100 60 6000 24 5976 1사분기
2 전기밥솥 150 60 9000 36 8964 1사분기
3 믹서기 200 60 12000 48 11952 1사분기
4 전자레인지 120 60 7200 29 7171 1사분기
5 미니냉장고 80 60 4800 19 4781 1사분기
6 가습기 200 60 12000 48 11952 1사분기
7 선풍기 180 60 10800 43 10757 1사분기
>
> # 변수 quarter1의 1일생산량 평균을 구하시오.(mean 함수)
> mean(quat1$X1일생산량)
[1] 147.1429
>
> # 변수 quarter2의 총생산량의 총합을 구하시오.(sum 함수)
> sum(quat2$총생산량)
[1] 61800
>
> # 1사분기의 총생산량 컬럼만 추출하시오.
> q1_make <- df %>% filter(quarter == "1사분기") %>% select(총생산량)
> q1_make
총생산량
1 6000
2 9000
3 12000
4 7200
5 4800
6 12000
7 10800
>
> # 전체에서 제품명과 1일생산량의 앞부분 10행까지만 추출하시오.
> # 힌트 : head() 함수도 사용할 수 있다.
> user_Con03 <- df %>% select(제품명, X1일생산량)
> head(user_Con03, 10)
제품명 X1일생산량
1 미니오븐 100
2 전기밥솥 150
3 믹서기 200
4 전자레인지 120
5 미니냉장고 80
6 가습기 200
7 선풍기 180
8 미니오븐 100
9 전기밥솥 150
10 믹서기 200
>
> # 출고량를 기준으로 오름차순으로 정렬하시오.
> user_Asc <- df %>% arrange(출고량)
> user_Asc
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 미니냉장고 80 60 4800 19 4781 1사분기
2 미니냉장고 80 62 4960 17 4943 3사분기
3 미니냉장고 80 64 5120 21 5099 2사분기
4 미니오븐 100 60 6000 24 5976 1사분기
5 미니오븐 100 62 6200 22 6178 3사분기
6 미니오븐 100 64 6400 26 6374 2사분기
7 전자레인지 120 60 7200 29 7171 1사분기
8 전자레인지 120 62 7440 26 7414 3사분기
9 전자레인지 120 64 7680 31 7649 2사분기
10 전기밥솥 150 60 9000 36 8964 1사분기
11 전기밥솥 150 62 9300 33 9267 3사분기
12 전기밥솥 150 64 9600 39 9561 2사분기
13 선풍기 180 60 10800 43 10757 1사분기
14 선풍기 180 62 11160 39 11121 3사분기
15 선풍기 180 64 11520 47 11473 2사분기
16 믹서기 200 60 12000 48 11952 1사분기
17 가습기 200 60 12000 48 11952 1사분기
18 믹서기 200 62 12400 43 12357 3사분기
19 가습기 200 62 12400 43 12357 3사분기
20 믹서기 200 64 12800 52 12748 2사분기
21 가습기 200 64 12800 52 12748 2사분기
>
> # 총생산량을 기준으로 내림차순으로 정렬하시오.
> user_Desc <- df %>% arrange(desc(총생산량))
> user_Desc
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 믹서기 200 64 12800 52 12748 2사분기
2 가습기 200 64 12800 52 12748 2사분기
3 믹서기 200 62 12400 43 12357 3사분기
4 가습기 200 62 12400 43 12357 3사분기
5 믹서기 200 60 12000 48 11952 1사분기
6 가습기 200 60 12000 48 11952 1사분기
7 선풍기 180 64 11520 47 11473 2사분기
8 선풍기 180 62 11160 39 11121 3사분기
9 선풍기 180 60 10800 43 10757 1사분기
10 전기밥솥 150 64 9600 39 9561 2사분기
11 전기밥솥 150 62 9300 33 9267 3사분기
12 전기밥솥 150 60 9000 36 8964 1사분기
13 전자레인지 120 64 7680 31 7649 2사분기
14 전자레인지 120 62 7440 26 7414 3사분기
15 전자레인지 120 60 7200 29 7171 1사분기
16 미니오븐 100 64 6400 26 6374 2사분기
17 미니오븐 100 62 6200 22 6178 3사분기
18 미니오븐 100 60 6000 24 5976 1사분기
19 미니냉장고 80 64 5120 21 5099 2사분기
20 미니냉장고 80 62 4960 17 4943 3사분기
21 미니냉장고 80 60 4800 19 4781 1사분기
>
> # 분기(quarter)별 오름차순 정렬 후, 불량품으로 내림차순 정렬하시오.
> user_Sort <- df %>% arrange(quarter, desc(불량품))
> user_Sort
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter
1 믹서기 200 60 12000 48 11952 1사분기
2 가습기 200 60 12000 48 11952 1사분기
3 선풍기 180 60 10800 43 10757 1사분기
4 전기밥솥 150 60 9000 36 8964 1사분기
5 전자레인지 120 60 7200 29 7171 1사분기
6 미니오븐 100 60 6000 24 5976 1사분기
7 미니냉장고 80 60 4800 19 4781 1사분기
8 믹서기 200 64 12800 52 12748 2사분기
9 가습기 200 64 12800 52 12748 2사분기
10 선풍기 180 64 11520 47 11473 2사분기
11 전기밥솥 150 64 9600 39 9561 2사분기
12 전자레인지 120 64 7680 31 7649 2사분기
13 미니오븐 100 64 6400 26 6374 2사분기
14 미니냉장고 80 64 5120 21 5099 2사분기
15 믹서기 200 62 12400 43 12357 3사분기
16 가습기 200 62 12400 43 12357 3사분기
17 선풍기 180 62 11160 39 11121 3사분기
18 전기밥솥 150 62 9300 33 9267 3사분기
19 전자레인지 120 62 7440 26 7414 3사분기
20 미니오븐 100 62 6200 22 6178 3사분기
21 미니냉장고 80 62 4960 17 4943 3사분기
>
> # 불량률 컬럼을 만들어 보되, 소수점 3자리까지 표현하시오.
> # 불량률 = 불량품 / 총생산량
> prob <- ddply(df, .(제품명), transform, 불량률=불량품/총생산량)
> prob
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter 불량률
1 가습기 200 60 12000 48 11952 1사분기 0.004000000
2 가습기 200 64 12800 52 12748 2사분기 0.004062500
3 가습기 200 62 12400 43 12357 3사분기 0.003467742
4 미니냉장고 80 60 4800 19 4781 1사분기 0.003958333
5 미니냉장고 80 64 5120 21 5099 2사분기 0.004101563
6 미니냉장고 80 62 4960 17 4943 3사분기 0.003427419
7 미니오븐 100 60 6000 24 5976 1사분기 0.004000000
8 미니오븐 100 64 6400 26 6374 2사분기 0.004062500
9 미니오븐 100 62 6200 22 6178 3사분기 0.003548387
10 믹서기 200 60 12000 48 11952 1사분기 0.004000000
11 믹서기 200 64 12800 52 12748 2사분기 0.004062500
12 믹서기 200 62 12400 43 12357 3사분기 0.003467742
13 선풍기 180 60 10800 43 10757 1사분기 0.003981481
14 선풍기 180 64 11520 47 11473 2사분기 0.004079861
15 선풍기 180 62 11160 39 11121 3사분기 0.003494624
16 전기밥솥 150 60 9000 36 8964 1사분기 0.004000000
17 전기밥솥 150 64 9600 39 9561 2사분기 0.004062500
18 전기밥솥 150 62 9300 33 9267 3사분기 0.003548387
19 전자레인지 120 60 7200 29 7171 1사분기 0.004027778
20 전자레인지 120 64 7680 31 7649 2사분기 0.004036458
21 전자레인지 120 62 7440 26 7414 3사분기 0.003494624
>
> # result 컬럼을 만들어 보세요.
> # result 컬럼은 불량률 컬럼이 얼마이상이면 'bad', 아니면 'good'이라는 값을 저장해야 한다.
> # 힌트 : ifelse 함수를 사용하면 된다.
> prob2 <- ddply(df, .(제품명), transform, result=ifelse(불량품/총생산량>=0.004, "bad", "good"))
> prob2
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter result
1 가습기 200 60 12000 48 11952 1사분기 bad
2 가습기 200 64 12800 52 12748 2사분기 bad
3 가습기 200 62 12400 43 12357 3사분기 good
4 미니냉장고 80 60 4800 19 4781 1사분기 good
5 미니냉장고 80 64 5120 21 5099 2사분기 bad
6 미니냉장고 80 62 4960 17 4943 3사분기 good
7 미니오븐 100 60 6000 24 5976 1사분기 bad
8 미니오븐 100 64 6400 26 6374 2사분기 bad
9 미니오븐 100 62 6200 22 6178 3사분기 good
10 믹서기 200 60 12000 48 11952 1사분기 bad
11 믹서기 200 64 12800 52 12748 2사분기 bad
12 믹서기 200 62 12400 43 12357 3사분기 good
13 선풍기 180 60 10800 43 10757 1사분기 good
14 선풍기 180 64 11520 47 11473 2사분기 bad
15 선풍기 180 62 11160 39 11121 3사분기 good
16 전기밥솥 150 60 9000 36 8964 1사분기 bad
17 전기밥솥 150 64 9600 39 9561 2사분기 bad
18 전기밥솥 150 62 9300 33 9267 3사분기 good
19 전자레인지 120 60 7200 29 7171 1사분기 bad
20 전자레인지 120 64 7680 31 7649 2사분기 bad
21 전자레인지 120 62 7440 26 7414 3사분기 good
>
> # 불량률 컬럼 기준으로 오름차순 정렬하시오.
> prob %>% arrange(불량률)
제품명 X1일생산량 생산일수 총생산량 불량품 출고량 quarter 불량률
1 미니냉장고 80 62 4960 17 4943 3사분기 0.003427419
2 가습기 200 62 12400 43 12357 3사분기 0.003467742
3 믹서기 200 62 12400 43 12357 3사분기 0.003467742
4 선풍기 180 62 11160 39 11121 3사분기 0.003494624
5 전자레인지 120 62 7440 26 7414 3사분기 0.003494624
6 미니오븐 100 62 6200 22 6178 3사분기 0.003548387
7 전기밥솥 150 62 9300 33 9267 3사분기 0.003548387
8 미니냉장고 80 60 4800 19 4781 1사분기 0.003958333
9 선풍기 180 60 10800 43 10757 1사분기 0.003981481
10 가습기 200 60 12000 48 11952 1사분기 0.004000000
11 미니오븐 100 60 6000 24 5976 1사분기 0.004000000
12 믹서기 200 60 12000 48 11952 1사분기 0.004000000
13 전기밥솥 150 60 9000 36 8964 1사분기 0.004000000
14 전자레인지 120 60 7200 29 7171 1사분기 0.004027778
15 전자레인지 120 64 7680 31 7649 2사분기 0.004036458
16 가습기 200 64 12800 52 12748 2사분기 0.004062500
17 미니오븐 100 64 6400 26 6374 2사분기 0.004062500
18 믹서기 200 64 12800 52 12748 2사분기 0.004062500
19 전기밥솥 150 64 9600 39 9561 2사분기 0.004062500
20 선풍기 180 64 11520 47 11473 2사분기 0.004079861
21 미니냉장고 80 64 5120 21 5099 2사분기 0.004101563
>
> # 분기별로 총생산량의 평균과 불량품의 총합 및 빈도수를 구해 보세요(힌트 : n() 함수)
> prob3 <- ddply(df, .(제품명), summarise, 총생산량평균=mean(총생산량), 불량품총합=sum(불량품), 빈도수=dplyr::n())
> prob3
제품명 총생산량평균 불량품총합 빈도수
1 가습기 12400 143 3
2 미니냉장고 4960 57 3
3 미니오븐 6200 72 3
4 믹서기 12400 143 3
5 선풍기 11160 129 3
6 전기밥솥 9300 108 3
7 전자레인지 7440 86 3
Comments