library(datasets)
data(ChickWeight)
View(ChickWeight)
head(ChickWeight)
## weight Time Chick Diet
## 1 42 0 1 1
## 2 51 2 1 1
## 3 59 4 1 1
## 4 64 6 1 1
## 5 76 8 1 1
## 6 93 10 1 1
class(ChickWeight)
## [1] "nfnGroupedData" "nfGroupedData" "groupedData" "data.frame"
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
summary(ChickWeight)
## weight Time Chick Diet
## Min. : 35.0 Min. : 0.00 13 : 12 1:220
## 1st Qu.: 63.0 1st Qu.: 4.00 9 : 12 2:120
## Median :103.0 Median :10.00 20 : 12 3:120
## Mean :121.8 Mean :10.72 10 : 12 4:118
## 3rd Qu.:163.8 3rd Qu.:16.00 17 : 12
## Max. :373.0 Max. :21.00 19 : 12
## (Other):506
summary_diet <- ChickWeight %>%
group_by(Diet) %>%
summarize(
Total = sum(weight),
Mean = mean(weight),
Median = median(weight),
Max = max(weight),
Min = min(weight)
)
print(summary_diet)
## # A tibble: 4 × 6
## Diet Total Mean Median Max Min
## <fct> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 22582 103. 88 305 35
## 2 2 14714 123. 104. 331 39
## 3 3 17154 143. 126. 373 39
## 4 4 15961 135. 130. 322 39
summary_time <- ChickWeight %>%
group_by(Time) %>%
summarise(
Avg_Weight = mean(weight),
Max_Weight = max(weight),
Min_Weight = min(weight),
Count = n()
)
print(summary_time)
## # A tibble: 12 × 5
## Time Avg_Weight Max_Weight Min_Weight Count
## <dbl> <dbl> <dbl> <dbl> <int>
## 1 0 41.1 43 39 50
## 2 2 49.2 55 35 50
## 3 4 60.0 69 48 49
## 4 6 74.3 96 51 49
## 5 8 91.2 131 57 49
## 6 10 108. 163 51 49
## 7 12 129. 217 54 49
## 8 14 144. 240 68 48
## 9 16 168. 287 71 47
## 10 18 190. 332 72 47
## 11 20 210. 361 76 46
## 12 21 219. 373 74 45
summary_diet_time <- ChickWeight %>%
group_by(Diet, Time) %>%
summarise(
Avg_Weight = mean(weight),
Count = n()
)
## `summarise()` has grouped output by 'Diet'. You can override using the
## `.groups` argument.
print(summary_diet_time)
## # A tibble: 48 × 4
## # Groups: Diet [4]
## Diet Time Avg_Weight Count
## <fct> <dbl> <dbl> <int>
## 1 1 0 41.4 20
## 2 1 2 47.2 20
## 3 1 4 56.5 19
## 4 1 6 66.8 19
## 5 1 8 79.7 19
## 6 1 10 93.1 19
## 7 1 12 109. 19
## 8 1 14 123. 18
## 9 1 16 145. 17
## 10 1 18 159. 17
## # ℹ 38 more rows
head(ChickWeight %>% arrange(weight))
## weight Time Chick Diet
## 1 35 2 18 1
## 2 39 2 3 1
## 3 39 0 18 1
## 4 39 0 27 2
## 5 39 0 28 2
## 6 39 0 29 2
head(ChickWeight %>% arrange(desc(weight)))
## weight Time Chick Diet
## 1 373 21 35 3
## 2 361 20 35 3
## 3 341 21 34 3
## 4 332 18 35 3
## 5 331 21 21 2
## 6 327 20 34 3
head(ChickWeight %>% arrange(Diet, desc(weight)))
## weight Time Chick Diet
## 1 305 21 7 1
## 2 288 20 7 1
## 3 266 21 14 1
## 4 259 20 14 1
## 5 250 18 7 1
## 6 248 18 14 1
filtered_chick <- filter(ChickWeight, weight < 100)
head(filtered_chick)
## weight Time Chick Diet
## 1 42 0 1 1
## 2 51 2 1 1
## 3 59 4 1 1
## 4 64 6 1 1
## 5 76 8 1 1
## 6 93 10 1 1
filtered_chick2 <- ChickWeight %>%
filter(Diet == 3, Time == 8)
head(filtered_chick2)
## weight Time Chick Diet
## 1 85 8 31 3
## 2 107 8 32 3
## 3 96 8 33 3
## 4 107 8 34 3
## 5 123 8 35 3
## 6 98 8 36 3
mutated_weight <- ChickWeight %>%
mutate(weight_kg = weight / 1000)
head(mutated_weight)
## weight Time Chick Diet weight_kg
## 1 42 0 1 1 0.042
## 2 51 2 1 1 0.051
## 3 59 4 1 1 0.059
## 4 64 6 1 1 0.064
## 5 76 8 1 1 0.076
## 6 93 10 1 1 0.093
head(ChickWeight %>% select(weight, Time))
## weight Time
## 1 42 0
## 2 51 2
## 3 59 4
## 4 64 6
## 5 76 8
## 6 93 10
head(ChickWeight %>% select(-Chick, -Diet))
## weight Time
## 1 42 0
## 2 51 2
## 3 59 4
## 4 64 6
## 5 76 8
## 6 93 10
Menyaring data ChickWeight dengan weight lebih besar dari 300 gram, lalu mengurutkan hasilnya berdasarkan Diet secara descending
result1 <- ChickWeight %>%
filter(weight > 300) %>%
arrange(desc(Diet))
result1
## weight Time Chick Diet
## 1 303 20 48 4
## 2 322 21 48 4
## 3 305 21 32 3
## 4 327 20 34 3
## 5 341 21 34 3
## 6 332 18 35 3
## 7 361 20 35 3
## 8 373 21 35 3
## 9 321 21 40 3
## 10 307 18 21 2
## 11 318 20 21 2
## 12 331 21 21 2
## 13 309 21 29 2
## 14 305 21 7 1