เป็น casestudy ที่ทาง Coursera Google Data Analytics คิดโจทย์ไว้ให้ผู้ที่เรียนได้นำ Case นี้ไปฝึกเพื่อทบทวนในสิ่งที่ได้เรียนมา Case นี้เป็น Case ของบริษัทที่ชื่อว่า BellaBeat เป็นบริษัทที่ผลิตสินค้า IT สำหรับโดยเน้นที่เรื่องสุขภาพสำหรับผู้หญิง โดยทาง BellaBeat ต้องการหาโอกาสทางธุรกิจใหม่ๆของตนเอง จึงอยากได้ไอเดียใหม่ๆ โดยอิงจากข้อมูลของบริษัทอื่นที่ทำเกี่ยวกับสินค้าเพื่อสุขภาพที่มีอยู่
install.packages("tidyverse")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.3'
## (as 'lib' is unspecified)
install.packages("skimr")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.3'
## (as 'lib' is unspecified)
install.packages("janitor")
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.3'
## (as 'lib' is unspecified)
install.packages('ggplot2')
## Installing package into '/cloud/lib/x86_64-pc-linux-gnu-library/4.3'
## (as 'lib' is unspecified)
library(ggplot2)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ lubridate 1.9.3 ✔ tibble 3.2.1
## ✔ purrr 1.0.2 ✔ tidyr 1.3.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
library(skimr)
library(janitor)
##
## Attaching package: 'janitor'
##
## The following objects are masked from 'package:stats':
##
## chisq.test, fisher.test
โดยก่อนเลือกว่าจะใช้ข้อมูลไหนบ้างก็ทำการตรวจดูราบละเอียดของข้อมูลในแต่ละไฟล์ก่อน โดยผมได้ทำการดูข้อมูลในแต่ละไฟล์คร่าวๆด้วย Excel เพื่อดูว่าแต่ละไฟล์เก็บข้อมูลยังไง มีข้อมูลแบบไหนบ้าง และเลือกว่าจะใช้ข้อมูลไหนบ้าง
(โดยข้อมูลที่ใช้จะเป็ยข้อมูล FitBit Fitness Tracker Data ชื่อ mturkfitbit_export_4.12.16-5.12.16)
daily_activity <- read_csv("mturkfitbit_export_4.12.16-5.12.16/Fitabase Data 4.12.16-5.12.16/dailyActivity_merged.csv")
## Rows: 940 Columns: 15
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): ActivityDate
## dbl (14): Id, TotalSteps, TotalDistance, TrackerDistance, LoggedActivitiesDi...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
daily_calories <- read_csv("mturkfitbit_export_4.12.16-5.12.16/Fitabase Data 4.12.16-5.12.16/dailyCalories_merged.csv")
## Rows: 940 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): ActivityDay
## dbl (2): Id, Calories
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
daily_intensities <- read_csv("mturkfitbit_export_4.12.16-5.12.16/Fitabase Data 4.12.16-5.12.16/dailyIntensities_merged.csv")
## Rows: 940 Columns: 10
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): ActivityDay
## dbl (9): Id, SedentaryMinutes, LightlyActiveMinutes, FairlyActiveMinutes, Ve...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
daily_steps <- read_csv("mturkfitbit_export_4.12.16-5.12.16/Fitabase Data 4.12.16-5.12.16/dailySteps_merged.csv")
## Rows: 940 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): ActivityDay
## dbl (2): Id, StepTotal
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
heartrate_seconds <- read_csv("mturkfitbit_export_4.12.16-5.12.16/Fitabase Data 4.12.16-5.12.16/heartrate_seconds_merged.csv")
## Rows: 2483658 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Time
## dbl (2): Id, Value
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
hourly_calories <- read_csv("mturkfitbit_export_4.12.16-5.12.16/Fitabase Data 4.12.16-5.12.16/hourlyCalories_merged.csv")
## Rows: 22099 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): ActivityHour
## dbl (2): Id, Calories
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
hourly_intensities <- read_csv("mturkfitbit_export_4.12.16-5.12.16/Fitabase Data 4.12.16-5.12.16/hourlyIntensities_merged.csv")
## Rows: 22099 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): ActivityHour
## dbl (3): Id, TotalIntensity, AverageIntensity
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
hourly_steps <- read_csv("mturkfitbit_export_4.12.16-5.12.16/Fitabase Data 4.12.16-5.12.16/hourlySteps_merged.csv")
## Rows: 22099 Columns: 3
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): ActivityHour
## dbl (2): Id, StepTotal
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
sleepday <- read_csv("mturkfitbit_export_4.12.16-5.12.16/Fitabase Data 4.12.16-5.12.16/sleepDay_merged.csv")
## Rows: 413 Columns: 5
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): SleepDay
## dbl (4): Id, TotalSleepRecords, TotalMinutesAsleep, TotalTimeInBed
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
โดยเราจะไปดูภาพรวมของข้อมูลแต่ละไฟล์ที่เลือกมาอีกครั้งและทำการลบไฟล์ที่ซ้ำกันในแต่ละข้อมูลออกไปด้วย
daily_activity %>%
distinct(.keep_all = TRUE)
## # A tibble: 940 × 15
## Id ActivityDate TotalSteps TotalDistance TrackerDistance
## <dbl> <chr> <dbl> <dbl> <dbl>
## 1 1503960366 4/12/2016 13162 8.5 8.5
## 2 1503960366 4/13/2016 10735 6.97 6.97
## 3 1503960366 4/14/2016 10460 6.74 6.74
## 4 1503960366 4/15/2016 9762 6.28 6.28
## 5 1503960366 4/16/2016 12669 8.16 8.16
## 6 1503960366 4/17/2016 9705 6.48 6.48
## 7 1503960366 4/18/2016 13019 8.59 8.59
## 8 1503960366 4/19/2016 15506 9.88 9.88
## 9 1503960366 4/20/2016 10544 6.68 6.68
## 10 1503960366 4/21/2016 9819 6.34 6.34
## # ℹ 930 more rows
## # ℹ 10 more variables: LoggedActivitiesDistance <dbl>,
## # VeryActiveDistance <dbl>, ModeratelyActiveDistance <dbl>,
## # LightActiveDistance <dbl>, SedentaryActiveDistance <dbl>,
## # VeryActiveMinutes <dbl>, FairlyActiveMinutes <dbl>,
## # LightlyActiveMinutes <dbl>, SedentaryMinutes <dbl>, Calories <dbl>
summary(daily_activity)
## Id ActivityDate TotalSteps TotalDistance
## Min. :1.504e+09 Length:940 Min. : 0 Min. : 0.000
## 1st Qu.:2.320e+09 Class :character 1st Qu.: 3790 1st Qu.: 2.620
## Median :4.445e+09 Mode :character Median : 7406 Median : 5.245
## Mean :4.855e+09 Mean : 7638 Mean : 5.490
## 3rd Qu.:6.962e+09 3rd Qu.:10727 3rd Qu.: 7.713
## Max. :8.878e+09 Max. :36019 Max. :28.030
## TrackerDistance LoggedActivitiesDistance VeryActiveDistance
## Min. : 0.000 Min. :0.0000 Min. : 0.000
## 1st Qu.: 2.620 1st Qu.:0.0000 1st Qu.: 0.000
## Median : 5.245 Median :0.0000 Median : 0.210
## Mean : 5.475 Mean :0.1082 Mean : 1.503
## 3rd Qu.: 7.710 3rd Qu.:0.0000 3rd Qu.: 2.053
## Max. :28.030 Max. :4.9421 Max. :21.920
## ModeratelyActiveDistance LightActiveDistance SedentaryActiveDistance
## Min. :0.0000 Min. : 0.000 Min. :0.000000
## 1st Qu.:0.0000 1st Qu.: 1.945 1st Qu.:0.000000
## Median :0.2400 Median : 3.365 Median :0.000000
## Mean :0.5675 Mean : 3.341 Mean :0.001606
## 3rd Qu.:0.8000 3rd Qu.: 4.782 3rd Qu.:0.000000
## Max. :6.4800 Max. :10.710 Max. :0.110000
## VeryActiveMinutes FairlyActiveMinutes LightlyActiveMinutes SedentaryMinutes
## Min. : 0.00 Min. : 0.00 Min. : 0.0 Min. : 0.0
## 1st Qu.: 0.00 1st Qu.: 0.00 1st Qu.:127.0 1st Qu.: 729.8
## Median : 4.00 Median : 6.00 Median :199.0 Median :1057.5
## Mean : 21.16 Mean : 13.56 Mean :192.8 Mean : 991.2
## 3rd Qu.: 32.00 3rd Qu.: 19.00 3rd Qu.:264.0 3rd Qu.:1229.5
## Max. :210.00 Max. :143.00 Max. :518.0 Max. :1440.0
## Calories
## Min. : 0
## 1st Qu.:1828
## Median :2134
## Mean :2304
## 3rd Qu.:2793
## Max. :4900
head(daily_activity)
## # A tibble: 6 × 15
## Id ActivityDate TotalSteps TotalDistance TrackerDistance
## <dbl> <chr> <dbl> <dbl> <dbl>
## 1 1503960366 4/12/2016 13162 8.5 8.5
## 2 1503960366 4/13/2016 10735 6.97 6.97
## 3 1503960366 4/14/2016 10460 6.74 6.74
## 4 1503960366 4/15/2016 9762 6.28 6.28
## 5 1503960366 4/16/2016 12669 8.16 8.16
## 6 1503960366 4/17/2016 9705 6.48 6.48
## # ℹ 10 more variables: LoggedActivitiesDistance <dbl>,
## # VeryActiveDistance <dbl>, ModeratelyActiveDistance <dbl>,
## # LightActiveDistance <dbl>, SedentaryActiveDistance <dbl>,
## # VeryActiveMinutes <dbl>, FairlyActiveMinutes <dbl>,
## # LightlyActiveMinutes <dbl>, SedentaryMinutes <dbl>, Calories <dbl>
daily_calories %>%
distinct(.keep_all = TRUE)
## # A tibble: 940 × 3
## Id ActivityDay Calories
## <dbl> <chr> <dbl>
## 1 1503960366 4/12/2016 1985
## 2 1503960366 4/13/2016 1797
## 3 1503960366 4/14/2016 1776
## 4 1503960366 4/15/2016 1745
## 5 1503960366 4/16/2016 1863
## 6 1503960366 4/17/2016 1728
## 7 1503960366 4/18/2016 1921
## 8 1503960366 4/19/2016 2035
## 9 1503960366 4/20/2016 1786
## 10 1503960366 4/21/2016 1775
## # ℹ 930 more rows
summary(daily_calories)
## Id ActivityDay Calories
## Min. :1.504e+09 Length:940 Min. : 0
## 1st Qu.:2.320e+09 Class :character 1st Qu.:1828
## Median :4.445e+09 Mode :character Median :2134
## Mean :4.855e+09 Mean :2304
## 3rd Qu.:6.962e+09 3rd Qu.:2793
## Max. :8.878e+09 Max. :4900
head(daily_calories)
## # A tibble: 6 × 3
## Id ActivityDay Calories
## <dbl> <chr> <dbl>
## 1 1503960366 4/12/2016 1985
## 2 1503960366 4/13/2016 1797
## 3 1503960366 4/14/2016 1776
## 4 1503960366 4/15/2016 1745
## 5 1503960366 4/16/2016 1863
## 6 1503960366 4/17/2016 1728
daily_intensities %>%
distinct(.keep_all = TRUE)
## # A tibble: 940 × 10
## Id ActivityDay SedentaryMinutes LightlyActiveMinutes FairlyActiveMinutes
## <dbl> <chr> <dbl> <dbl> <dbl>
## 1 1.50e9 4/12/2016 728 328 13
## 2 1.50e9 4/13/2016 776 217 19
## 3 1.50e9 4/14/2016 1218 181 11
## 4 1.50e9 4/15/2016 726 209 34
## 5 1.50e9 4/16/2016 773 221 10
## 6 1.50e9 4/17/2016 539 164 20
## 7 1.50e9 4/18/2016 1149 233 16
## 8 1.50e9 4/19/2016 775 264 31
## 9 1.50e9 4/20/2016 818 205 12
## 10 1.50e9 4/21/2016 838 211 8
## # ℹ 930 more rows
## # ℹ 5 more variables: VeryActiveMinutes <dbl>, SedentaryActiveDistance <dbl>,
## # LightActiveDistance <dbl>, ModeratelyActiveDistance <dbl>,
## # VeryActiveDistance <dbl>
summary(daily_intensities)
## Id ActivityDay SedentaryMinutes LightlyActiveMinutes
## Min. :1.504e+09 Length:940 Min. : 0.0 Min. : 0.0
## 1st Qu.:2.320e+09 Class :character 1st Qu.: 729.8 1st Qu.:127.0
## Median :4.445e+09 Mode :character Median :1057.5 Median :199.0
## Mean :4.855e+09 Mean : 991.2 Mean :192.8
## 3rd Qu.:6.962e+09 3rd Qu.:1229.5 3rd Qu.:264.0
## Max. :8.878e+09 Max. :1440.0 Max. :518.0
## FairlyActiveMinutes VeryActiveMinutes SedentaryActiveDistance
## Min. : 0.00 Min. : 0.00 Min. :0.000000
## 1st Qu.: 0.00 1st Qu.: 0.00 1st Qu.:0.000000
## Median : 6.00 Median : 4.00 Median :0.000000
## Mean : 13.56 Mean : 21.16 Mean :0.001606
## 3rd Qu.: 19.00 3rd Qu.: 32.00 3rd Qu.:0.000000
## Max. :143.00 Max. :210.00 Max. :0.110000
## LightActiveDistance ModeratelyActiveDistance VeryActiveDistance
## Min. : 0.000 Min. :0.0000 Min. : 0.000
## 1st Qu.: 1.945 1st Qu.:0.0000 1st Qu.: 0.000
## Median : 3.365 Median :0.2400 Median : 0.210
## Mean : 3.341 Mean :0.5675 Mean : 1.503
## 3rd Qu.: 4.782 3rd Qu.:0.8000 3rd Qu.: 2.053
## Max. :10.710 Max. :6.4800 Max. :21.920
head(daily_intensities)
## # A tibble: 6 × 10
## Id ActivityDay SedentaryMinutes LightlyActiveMinutes FairlyActiveMinutes
## <dbl> <chr> <dbl> <dbl> <dbl>
## 1 1.50e9 4/12/2016 728 328 13
## 2 1.50e9 4/13/2016 776 217 19
## 3 1.50e9 4/14/2016 1218 181 11
## 4 1.50e9 4/15/2016 726 209 34
## 5 1.50e9 4/16/2016 773 221 10
## 6 1.50e9 4/17/2016 539 164 20
## # ℹ 5 more variables: VeryActiveMinutes <dbl>, SedentaryActiveDistance <dbl>,
## # LightActiveDistance <dbl>, ModeratelyActiveDistance <dbl>,
## # VeryActiveDistance <dbl>
daily_steps %>%
distinct(.keep_all = TRUE)
## # A tibble: 940 × 3
## Id ActivityDay StepTotal
## <dbl> <chr> <dbl>
## 1 1503960366 4/12/2016 13162
## 2 1503960366 4/13/2016 10735
## 3 1503960366 4/14/2016 10460
## 4 1503960366 4/15/2016 9762
## 5 1503960366 4/16/2016 12669
## 6 1503960366 4/17/2016 9705
## 7 1503960366 4/18/2016 13019
## 8 1503960366 4/19/2016 15506
## 9 1503960366 4/20/2016 10544
## 10 1503960366 4/21/2016 9819
## # ℹ 930 more rows
summary(daily_steps)
## Id ActivityDay StepTotal
## Min. :1.504e+09 Length:940 Min. : 0
## 1st Qu.:2.320e+09 Class :character 1st Qu.: 3790
## Median :4.445e+09 Mode :character Median : 7406
## Mean :4.855e+09 Mean : 7638
## 3rd Qu.:6.962e+09 3rd Qu.:10727
## Max. :8.878e+09 Max. :36019
head(daily_steps)
## # A tibble: 6 × 3
## Id ActivityDay StepTotal
## <dbl> <chr> <dbl>
## 1 1503960366 4/12/2016 13162
## 2 1503960366 4/13/2016 10735
## 3 1503960366 4/14/2016 10460
## 4 1503960366 4/15/2016 9762
## 5 1503960366 4/16/2016 12669
## 6 1503960366 4/17/2016 9705
heartrate_seconds %>%
distinct(.keep_all = TRUE)
## # A tibble: 2,483,658 × 3
## Id Time Value
## <dbl> <chr> <dbl>
## 1 2022484408 4/12/2016 7:21:00 AM 97
## 2 2022484408 4/12/2016 7:21:05 AM 102
## 3 2022484408 4/12/2016 7:21:10 AM 105
## 4 2022484408 4/12/2016 7:21:20 AM 103
## 5 2022484408 4/12/2016 7:21:25 AM 101
## 6 2022484408 4/12/2016 7:22:05 AM 95
## 7 2022484408 4/12/2016 7:22:10 AM 91
## 8 2022484408 4/12/2016 7:22:15 AM 93
## 9 2022484408 4/12/2016 7:22:20 AM 94
## 10 2022484408 4/12/2016 7:22:25 AM 93
## # ℹ 2,483,648 more rows
summary(heartrate_seconds)
## Id Time Value
## Min. :2.022e+09 Length:2483658 Min. : 36.00
## 1st Qu.:4.388e+09 Class :character 1st Qu.: 63.00
## Median :5.554e+09 Mode :character Median : 73.00
## Mean :5.514e+09 Mean : 77.33
## 3rd Qu.:6.962e+09 3rd Qu.: 88.00
## Max. :8.878e+09 Max. :203.00
head(heartrate_seconds)
## # A tibble: 6 × 3
## Id Time Value
## <dbl> <chr> <dbl>
## 1 2022484408 4/12/2016 7:21:00 AM 97
## 2 2022484408 4/12/2016 7:21:05 AM 102
## 3 2022484408 4/12/2016 7:21:10 AM 105
## 4 2022484408 4/12/2016 7:21:20 AM 103
## 5 2022484408 4/12/2016 7:21:25 AM 101
## 6 2022484408 4/12/2016 7:22:05 AM 95
hourly_calories %>%
distinct(.keep_all = TRUE)
## # A tibble: 22,099 × 3
## Id ActivityHour Calories
## <dbl> <chr> <dbl>
## 1 1503960366 4/12/2016 12:00:00 AM 81
## 2 1503960366 4/12/2016 1:00:00 AM 61
## 3 1503960366 4/12/2016 2:00:00 AM 59
## 4 1503960366 4/12/2016 3:00:00 AM 47
## 5 1503960366 4/12/2016 4:00:00 AM 48
## 6 1503960366 4/12/2016 5:00:00 AM 48
## 7 1503960366 4/12/2016 6:00:00 AM 48
## 8 1503960366 4/12/2016 7:00:00 AM 47
## 9 1503960366 4/12/2016 8:00:00 AM 68
## 10 1503960366 4/12/2016 9:00:00 AM 141
## # ℹ 22,089 more rows
summary(hourly_calories)
## Id ActivityHour Calories
## Min. :1.504e+09 Length:22099 Min. : 42.00
## 1st Qu.:2.320e+09 Class :character 1st Qu.: 63.00
## Median :4.445e+09 Mode :character Median : 83.00
## Mean :4.848e+09 Mean : 97.39
## 3rd Qu.:6.962e+09 3rd Qu.:108.00
## Max. :8.878e+09 Max. :948.00
head(hourly_calories)
## # A tibble: 6 × 3
## Id ActivityHour Calories
## <dbl> <chr> <dbl>
## 1 1503960366 4/12/2016 12:00:00 AM 81
## 2 1503960366 4/12/2016 1:00:00 AM 61
## 3 1503960366 4/12/2016 2:00:00 AM 59
## 4 1503960366 4/12/2016 3:00:00 AM 47
## 5 1503960366 4/12/2016 4:00:00 AM 48
## 6 1503960366 4/12/2016 5:00:00 AM 48
hourly_intensities %>%
distinct(.keep_all = TRUE)
## # A tibble: 22,099 × 4
## Id ActivityHour TotalIntensity AverageIntensity
## <dbl> <chr> <dbl> <dbl>
## 1 1503960366 4/12/2016 12:00:00 AM 20 0.333
## 2 1503960366 4/12/2016 1:00:00 AM 8 0.133
## 3 1503960366 4/12/2016 2:00:00 AM 7 0.117
## 4 1503960366 4/12/2016 3:00:00 AM 0 0
## 5 1503960366 4/12/2016 4:00:00 AM 0 0
## 6 1503960366 4/12/2016 5:00:00 AM 0 0
## 7 1503960366 4/12/2016 6:00:00 AM 0 0
## 8 1503960366 4/12/2016 7:00:00 AM 0 0
## 9 1503960366 4/12/2016 8:00:00 AM 13 0.217
## 10 1503960366 4/12/2016 9:00:00 AM 30 0.5
## # ℹ 22,089 more rows
summary(hourly_intensities)
## Id ActivityHour TotalIntensity AverageIntensity
## Min. :1.504e+09 Length:22099 Min. : 0.00 Min. :0.0000
## 1st Qu.:2.320e+09 Class :character 1st Qu.: 0.00 1st Qu.:0.0000
## Median :4.445e+09 Mode :character Median : 3.00 Median :0.0500
## Mean :4.848e+09 Mean : 12.04 Mean :0.2006
## 3rd Qu.:6.962e+09 3rd Qu.: 16.00 3rd Qu.:0.2667
## Max. :8.878e+09 Max. :180.00 Max. :3.0000
head(hourly_intensities)
## # A tibble: 6 × 4
## Id ActivityHour TotalIntensity AverageIntensity
## <dbl> <chr> <dbl> <dbl>
## 1 1503960366 4/12/2016 12:00:00 AM 20 0.333
## 2 1503960366 4/12/2016 1:00:00 AM 8 0.133
## 3 1503960366 4/12/2016 2:00:00 AM 7 0.117
## 4 1503960366 4/12/2016 3:00:00 AM 0 0
## 5 1503960366 4/12/2016 4:00:00 AM 0 0
## 6 1503960366 4/12/2016 5:00:00 AM 0 0
hourly_steps %>%
distinct(.keep_all = TRUE)
## # A tibble: 22,099 × 3
## Id ActivityHour StepTotal
## <dbl> <chr> <dbl>
## 1 1503960366 4/12/2016 12:00:00 AM 373
## 2 1503960366 4/12/2016 1:00:00 AM 160
## 3 1503960366 4/12/2016 2:00:00 AM 151
## 4 1503960366 4/12/2016 3:00:00 AM 0
## 5 1503960366 4/12/2016 4:00:00 AM 0
## 6 1503960366 4/12/2016 5:00:00 AM 0
## 7 1503960366 4/12/2016 6:00:00 AM 0
## 8 1503960366 4/12/2016 7:00:00 AM 0
## 9 1503960366 4/12/2016 8:00:00 AM 250
## 10 1503960366 4/12/2016 9:00:00 AM 1864
## # ℹ 22,089 more rows
summary(hourly_steps)
## Id ActivityHour StepTotal
## Min. :1.504e+09 Length:22099 Min. : 0.0
## 1st Qu.:2.320e+09 Class :character 1st Qu.: 0.0
## Median :4.445e+09 Mode :character Median : 40.0
## Mean :4.848e+09 Mean : 320.2
## 3rd Qu.:6.962e+09 3rd Qu.: 357.0
## Max. :8.878e+09 Max. :10554.0
head(hourly_steps)
## # A tibble: 6 × 3
## Id ActivityHour StepTotal
## <dbl> <chr> <dbl>
## 1 1503960366 4/12/2016 12:00:00 AM 373
## 2 1503960366 4/12/2016 1:00:00 AM 160
## 3 1503960366 4/12/2016 2:00:00 AM 151
## 4 1503960366 4/12/2016 3:00:00 AM 0
## 5 1503960366 4/12/2016 4:00:00 AM 0
## 6 1503960366 4/12/2016 5:00:00 AM 0
sleepday %>%
distinct(.keep_all = TRUE)
## # A tibble: 410 × 5
## Id SleepDay TotalSleepRecords TotalMinutesAsleep TotalTimeInBed
## <dbl> <chr> <dbl> <dbl> <dbl>
## 1 1503960366 4/12/2016 12:… 1 327 346
## 2 1503960366 4/13/2016 12:… 2 384 407
## 3 1503960366 4/15/2016 12:… 1 412 442
## 4 1503960366 4/16/2016 12:… 2 340 367
## 5 1503960366 4/17/2016 12:… 1 700 712
## 6 1503960366 4/19/2016 12:… 1 304 320
## 7 1503960366 4/20/2016 12:… 1 360 377
## 8 1503960366 4/21/2016 12:… 1 325 364
## 9 1503960366 4/23/2016 12:… 1 361 384
## 10 1503960366 4/24/2016 12:… 1 430 449
## # ℹ 400 more rows
summary(sleepday)
## Id SleepDay TotalSleepRecords TotalMinutesAsleep
## Min. :1.504e+09 Length:413 Min. :1.000 Min. : 58.0
## 1st Qu.:3.977e+09 Class :character 1st Qu.:1.000 1st Qu.:361.0
## Median :4.703e+09 Mode :character Median :1.000 Median :433.0
## Mean :5.001e+09 Mean :1.119 Mean :419.5
## 3rd Qu.:6.962e+09 3rd Qu.:1.000 3rd Qu.:490.0
## Max. :8.792e+09 Max. :3.000 Max. :796.0
## TotalTimeInBed
## Min. : 61.0
## 1st Qu.:403.0
## Median :463.0
## Mean :458.6
## 3rd Qu.:526.0
## Max. :961.0
head(sleepday)
## # A tibble: 6 × 5
## Id SleepDay TotalSleepRecords TotalMinutesAsleep TotalTimeInBed
## <dbl> <chr> <dbl> <dbl> <dbl>
## 1 1503960366 4/12/2016 12:0… 1 327 346
## 2 1503960366 4/13/2016 12:0… 2 384 407
## 3 1503960366 4/15/2016 12:0… 1 412 442
## 4 1503960366 4/16/2016 12:0… 2 340 367
## 5 1503960366 4/17/2016 12:0… 1 700 712
## 6 1503960366 4/19/2016 12:0… 1 304 320
หลังจากที่ดูข้อมูลจะเห็นได้ว่าจะมีข้อมูลที่เก็บวันที่ของทุกไฟล์เก็บข้อมูลเป็น Char จึงจำเป็นต้องเปลี่ยนให้เป็น Date ที่มีformatเหมือนกันเพื่อให้สามารถนำไปใช้ต่อได้
daily_activity$ActivityDate <- as.Date(daily_activity$ActivityDate, format = "%m/%d/%Y")
daily_calories$ActivityDay <- as.Date(daily_calories$ActivityDay, format = "%m/%d/%Y")
daily_intensities$ActivityDay <- as.Date(daily_intensities$ActivityDay, format = "%m/%d/%Y")
daily_steps$ActivityDay <- as.Date(daily_steps$ActivityDay, format = "%m/%d/%Y")
heartrate_seconds$Time <- as.POSIXct(heartrate_seconds$Time, format = "%m/%d/%Y %I:%M:%S %p")
hourly_calories$ActivityHour <- as.POSIXct(hourly_calories$ActivityHour, format = "%m/%d/%Y %I:%M:%S %p")
hourly_intensities$ActivityHour <- as.POSIXct(hourly_intensities$ActivityHour, format = "%m/%d/%Y %I:%M:%S %p")
hourly_intensities$ActivityDate <- as.Date(hourly_intensities$ActivityHour, format = "%m/%d/%Y")
hourly_intensities$ActivityOnlyHour <- format(hourly_intensities$ActivityHour, format = "%H:%M:%S")
hourly_steps$ActivityHour <- as.POSIXct(hourly_steps$ActivityHour, format = "%m/%d/%Y %I:%M:%S %p")
sleepday$SleepDay <- as.Date(sleepday$SleepDay, format = "%m/%d/%Y")
ตรวจสอบข้อมูลทั้งหมดไหมอีกครั้งว่าเปลี่ยนข้อมูลถูกต้องตามที่ต้องการไหม
summary(daily_activity)
## Id ActivityDate TotalSteps TotalDistance
## Min. :1.504e+09 Min. :2016-04-12 Min. : 0 Min. : 0.000
## 1st Qu.:2.320e+09 1st Qu.:2016-04-19 1st Qu.: 3790 1st Qu.: 2.620
## Median :4.445e+09 Median :2016-04-26 Median : 7406 Median : 5.245
## Mean :4.855e+09 Mean :2016-04-26 Mean : 7638 Mean : 5.490
## 3rd Qu.:6.962e+09 3rd Qu.:2016-05-04 3rd Qu.:10727 3rd Qu.: 7.713
## Max. :8.878e+09 Max. :2016-05-12 Max. :36019 Max. :28.030
## TrackerDistance LoggedActivitiesDistance VeryActiveDistance
## Min. : 0.000 Min. :0.0000 Min. : 0.000
## 1st Qu.: 2.620 1st Qu.:0.0000 1st Qu.: 0.000
## Median : 5.245 Median :0.0000 Median : 0.210
## Mean : 5.475 Mean :0.1082 Mean : 1.503
## 3rd Qu.: 7.710 3rd Qu.:0.0000 3rd Qu.: 2.053
## Max. :28.030 Max. :4.9421 Max. :21.920
## ModeratelyActiveDistance LightActiveDistance SedentaryActiveDistance
## Min. :0.0000 Min. : 0.000 Min. :0.000000
## 1st Qu.:0.0000 1st Qu.: 1.945 1st Qu.:0.000000
## Median :0.2400 Median : 3.365 Median :0.000000
## Mean :0.5675 Mean : 3.341 Mean :0.001606
## 3rd Qu.:0.8000 3rd Qu.: 4.782 3rd Qu.:0.000000
## Max. :6.4800 Max. :10.710 Max. :0.110000
## VeryActiveMinutes FairlyActiveMinutes LightlyActiveMinutes SedentaryMinutes
## Min. : 0.00 Min. : 0.00 Min. : 0.0 Min. : 0.0
## 1st Qu.: 0.00 1st Qu.: 0.00 1st Qu.:127.0 1st Qu.: 729.8
## Median : 4.00 Median : 6.00 Median :199.0 Median :1057.5
## Mean : 21.16 Mean : 13.56 Mean :192.8 Mean : 991.2
## 3rd Qu.: 32.00 3rd Qu.: 19.00 3rd Qu.:264.0 3rd Qu.:1229.5
## Max. :210.00 Max. :143.00 Max. :518.0 Max. :1440.0
## Calories
## Min. : 0
## 1st Qu.:1828
## Median :2134
## Mean :2304
## 3rd Qu.:2793
## Max. :4900
head(daily_activity)
## # A tibble: 6 × 15
## Id ActivityDate TotalSteps TotalDistance TrackerDistance
## <dbl> <date> <dbl> <dbl> <dbl>
## 1 1503960366 2016-04-12 13162 8.5 8.5
## 2 1503960366 2016-04-13 10735 6.97 6.97
## 3 1503960366 2016-04-14 10460 6.74 6.74
## 4 1503960366 2016-04-15 9762 6.28 6.28
## 5 1503960366 2016-04-16 12669 8.16 8.16
## 6 1503960366 2016-04-17 9705 6.48 6.48
## # ℹ 10 more variables: LoggedActivitiesDistance <dbl>,
## # VeryActiveDistance <dbl>, ModeratelyActiveDistance <dbl>,
## # LightActiveDistance <dbl>, SedentaryActiveDistance <dbl>,
## # VeryActiveMinutes <dbl>, FairlyActiveMinutes <dbl>,
## # LightlyActiveMinutes <dbl>, SedentaryMinutes <dbl>, Calories <dbl>
summary(daily_calories)
## Id ActivityDay Calories
## Min. :1.504e+09 Min. :2016-04-12 Min. : 0
## 1st Qu.:2.320e+09 1st Qu.:2016-04-19 1st Qu.:1828
## Median :4.445e+09 Median :2016-04-26 Median :2134
## Mean :4.855e+09 Mean :2016-04-26 Mean :2304
## 3rd Qu.:6.962e+09 3rd Qu.:2016-05-04 3rd Qu.:2793
## Max. :8.878e+09 Max. :2016-05-12 Max. :4900
head(daily_calories)
## # A tibble: 6 × 3
## Id ActivityDay Calories
## <dbl> <date> <dbl>
## 1 1503960366 2016-04-12 1985
## 2 1503960366 2016-04-13 1797
## 3 1503960366 2016-04-14 1776
## 4 1503960366 2016-04-15 1745
## 5 1503960366 2016-04-16 1863
## 6 1503960366 2016-04-17 1728
summary(daily_intensities)
## Id ActivityDay SedentaryMinutes LightlyActiveMinutes
## Min. :1.504e+09 Min. :2016-04-12 Min. : 0.0 Min. : 0.0
## 1st Qu.:2.320e+09 1st Qu.:2016-04-19 1st Qu.: 729.8 1st Qu.:127.0
## Median :4.445e+09 Median :2016-04-26 Median :1057.5 Median :199.0
## Mean :4.855e+09 Mean :2016-04-26 Mean : 991.2 Mean :192.8
## 3rd Qu.:6.962e+09 3rd Qu.:2016-05-04 3rd Qu.:1229.5 3rd Qu.:264.0
## Max. :8.878e+09 Max. :2016-05-12 Max. :1440.0 Max. :518.0
## FairlyActiveMinutes VeryActiveMinutes SedentaryActiveDistance
## Min. : 0.00 Min. : 0.00 Min. :0.000000
## 1st Qu.: 0.00 1st Qu.: 0.00 1st Qu.:0.000000
## Median : 6.00 Median : 4.00 Median :0.000000
## Mean : 13.56 Mean : 21.16 Mean :0.001606
## 3rd Qu.: 19.00 3rd Qu.: 32.00 3rd Qu.:0.000000
## Max. :143.00 Max. :210.00 Max. :0.110000
## LightActiveDistance ModeratelyActiveDistance VeryActiveDistance
## Min. : 0.000 Min. :0.0000 Min. : 0.000
## 1st Qu.: 1.945 1st Qu.:0.0000 1st Qu.: 0.000
## Median : 3.365 Median :0.2400 Median : 0.210
## Mean : 3.341 Mean :0.5675 Mean : 1.503
## 3rd Qu.: 4.782 3rd Qu.:0.8000 3rd Qu.: 2.053
## Max. :10.710 Max. :6.4800 Max. :21.920
head(daily_intensities)
## # A tibble: 6 × 10
## Id ActivityDay SedentaryMinutes LightlyActiveMinutes FairlyActiveMinutes
## <dbl> <date> <dbl> <dbl> <dbl>
## 1 1.50e9 2016-04-12 728 328 13
## 2 1.50e9 2016-04-13 776 217 19
## 3 1.50e9 2016-04-14 1218 181 11
## 4 1.50e9 2016-04-15 726 209 34
## 5 1.50e9 2016-04-16 773 221 10
## 6 1.50e9 2016-04-17 539 164 20
## # ℹ 5 more variables: VeryActiveMinutes <dbl>, SedentaryActiveDistance <dbl>,
## # LightActiveDistance <dbl>, ModeratelyActiveDistance <dbl>,
## # VeryActiveDistance <dbl>
summary(daily_steps)
## Id ActivityDay StepTotal
## Min. :1.504e+09 Min. :2016-04-12 Min. : 0
## 1st Qu.:2.320e+09 1st Qu.:2016-04-19 1st Qu.: 3790
## Median :4.445e+09 Median :2016-04-26 Median : 7406
## Mean :4.855e+09 Mean :2016-04-26 Mean : 7638
## 3rd Qu.:6.962e+09 3rd Qu.:2016-05-04 3rd Qu.:10727
## Max. :8.878e+09 Max. :2016-05-12 Max. :36019
head(daily_steps)
## # A tibble: 6 × 3
## Id ActivityDay StepTotal
## <dbl> <date> <dbl>
## 1 1503960366 2016-04-12 13162
## 2 1503960366 2016-04-13 10735
## 3 1503960366 2016-04-14 10460
## 4 1503960366 2016-04-15 9762
## 5 1503960366 2016-04-16 12669
## 6 1503960366 2016-04-17 9705
summary(heartrate_seconds)
## Id Time Value
## Min. :2.022e+09 Min. :2016-04-12 00:00:00.00 Min. : 36.00
## 1st Qu.:4.388e+09 1st Qu.:2016-04-19 06:18:10.00 1st Qu.: 63.00
## Median :5.554e+09 Median :2016-04-26 20:28:50.00 Median : 73.00
## Mean :5.514e+09 Mean :2016-04-26 19:43:52.24 Mean : 77.33
## 3rd Qu.:6.962e+09 3rd Qu.:2016-05-04 08:00:20.00 3rd Qu.: 88.00
## Max. :8.878e+09 Max. :2016-05-12 16:20:00.00 Max. :203.00
head(heartrate_seconds)
## # A tibble: 6 × 3
## Id Time Value
## <dbl> <dttm> <dbl>
## 1 2022484408 2016-04-12 07:21:00 97
## 2 2022484408 2016-04-12 07:21:05 102
## 3 2022484408 2016-04-12 07:21:10 105
## 4 2022484408 2016-04-12 07:21:20 103
## 5 2022484408 2016-04-12 07:21:25 101
## 6 2022484408 2016-04-12 07:22:05 95
summary(hourly_calories)
## Id ActivityHour Calories
## Min. :1.504e+09 Min. :2016-04-12 00:00:00.00 Min. : 42.00
## 1st Qu.:2.320e+09 1st Qu.:2016-04-19 01:00:00.00 1st Qu.: 63.00
## Median :4.445e+09 Median :2016-04-26 06:00:00.00 Median : 83.00
## Mean :4.848e+09 Mean :2016-04-26 11:46:42.58 Mean : 97.39
## 3rd Qu.:6.962e+09 3rd Qu.:2016-05-03 19:00:00.00 3rd Qu.:108.00
## Max. :8.878e+09 Max. :2016-05-12 15:00:00.00 Max. :948.00
head(hourly_calories)
## # A tibble: 6 × 3
## Id ActivityHour Calories
## <dbl> <dttm> <dbl>
## 1 1503960366 2016-04-12 00:00:00 81
## 2 1503960366 2016-04-12 01:00:00 61
## 3 1503960366 2016-04-12 02:00:00 59
## 4 1503960366 2016-04-12 03:00:00 47
## 5 1503960366 2016-04-12 04:00:00 48
## 6 1503960366 2016-04-12 05:00:00 48
summary(hourly_intensities)
## Id ActivityHour TotalIntensity
## Min. :1.504e+09 Min. :2016-04-12 00:00:00.00 Min. : 0.00
## 1st Qu.:2.320e+09 1st Qu.:2016-04-19 01:00:00.00 1st Qu.: 0.00
## Median :4.445e+09 Median :2016-04-26 06:00:00.00 Median : 3.00
## Mean :4.848e+09 Mean :2016-04-26 11:46:42.58 Mean : 12.04
## 3rd Qu.:6.962e+09 3rd Qu.:2016-05-03 19:00:00.00 3rd Qu.: 16.00
## Max. :8.878e+09 Max. :2016-05-12 15:00:00.00 Max. :180.00
## AverageIntensity ActivityDate ActivityOnlyHour
## Min. :0.0000 Min. :2016-04-12 Length:22099
## 1st Qu.:0.0000 1st Qu.:2016-04-19 Class :character
## Median :0.0500 Median :2016-04-26 Mode :character
## Mean :0.2006 Mean :2016-04-26
## 3rd Qu.:0.2667 3rd Qu.:2016-05-03
## Max. :3.0000 Max. :2016-05-12
head(hourly_intensities)
## # A tibble: 6 × 6
## Id ActivityHour TotalIntensity AverageIntensity ActivityDate
## <dbl> <dttm> <dbl> <dbl> <date>
## 1 1503960366 2016-04-12 00:00:00 20 0.333 2016-04-12
## 2 1503960366 2016-04-12 01:00:00 8 0.133 2016-04-12
## 3 1503960366 2016-04-12 02:00:00 7 0.117 2016-04-12
## 4 1503960366 2016-04-12 03:00:00 0 0 2016-04-12
## 5 1503960366 2016-04-12 04:00:00 0 0 2016-04-12
## 6 1503960366 2016-04-12 05:00:00 0 0 2016-04-12
## # ℹ 1 more variable: ActivityOnlyHour <chr>
summary(hourly_steps)
## Id ActivityHour StepTotal
## Min. :1.504e+09 Min. :2016-04-12 00:00:00.00 Min. : 0.0
## 1st Qu.:2.320e+09 1st Qu.:2016-04-19 01:00:00.00 1st Qu.: 0.0
## Median :4.445e+09 Median :2016-04-26 06:00:00.00 Median : 40.0
## Mean :4.848e+09 Mean :2016-04-26 11:46:42.58 Mean : 320.2
## 3rd Qu.:6.962e+09 3rd Qu.:2016-05-03 19:00:00.00 3rd Qu.: 357.0
## Max. :8.878e+09 Max. :2016-05-12 15:00:00.00 Max. :10554.0
head(hourly_steps)
## # A tibble: 6 × 3
## Id ActivityHour StepTotal
## <dbl> <dttm> <dbl>
## 1 1503960366 2016-04-12 00:00:00 373
## 2 1503960366 2016-04-12 01:00:00 160
## 3 1503960366 2016-04-12 02:00:00 151
## 4 1503960366 2016-04-12 03:00:00 0
## 5 1503960366 2016-04-12 04:00:00 0
## 6 1503960366 2016-04-12 05:00:00 0
summary(sleepday)
## Id SleepDay TotalSleepRecords TotalMinutesAsleep
## Min. :1.504e+09 Min. :2016-04-12 Min. :1.000 Min. : 58.0
## 1st Qu.:3.977e+09 1st Qu.:2016-04-19 1st Qu.:1.000 1st Qu.:361.0
## Median :4.703e+09 Median :2016-04-27 Median :1.000 Median :433.0
## Mean :5.001e+09 Mean :2016-04-26 Mean :1.119 Mean :419.5
## 3rd Qu.:6.962e+09 3rd Qu.:2016-05-04 3rd Qu.:1.000 3rd Qu.:490.0
## Max. :8.792e+09 Max. :2016-05-12 Max. :3.000 Max. :796.0
## TotalTimeInBed
## Min. : 61.0
## 1st Qu.:403.0
## Median :463.0
## Mean :458.6
## 3rd Qu.:526.0
## Max. :961.0
head(sleepday)
## # A tibble: 6 × 5
## Id SleepDay TotalSleepRecords TotalMinutesAsleep TotalTimeInBed
## <dbl> <date> <dbl> <dbl> <dbl>
## 1 1503960366 2016-04-12 1 327 346
## 2 1503960366 2016-04-13 2 384 407
## 3 1503960366 2016-04-15 1 412 442
## 4 1503960366 2016-04-16 2 340 367
## 5 1503960366 2016-04-17 1 700 712
## 6 1503960366 2016-04-19 1 304 320
สร้างกราฟTotalSteps และ Calories เพื่อดูความสัมพันธ์ของข้อมูลทั้งสอง
ggplot(data = daily_activity, aes(x = TotalSteps,y = Calories))+
geom_smooth()+
labs(title="TotalSteps Vs Caalories")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
สร้างกราฟของ LightlyActive,VeryActive กับ Calories
ggplot(data = daily_activity, aes(x = LightlyActiveMinutes, y = Calories))+
geom_smooth()+
labs(title="LightlyActiveMinutes Vs Caalories")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
ggplot(data = daily_activity)+
geom_smooth(mapping = aes(x = VeryActiveMinutes,y = Calories))+
labs(title="VeryActiveMinutes Vs Caalories")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
*เปลี่ยนชื่อข้อมูลใน SleepDay เป็น ActivityDate เพื่อเตรียมเอาข้อมูลนี้ไป merge กับข้อมูลอื่นๆ
sleepday_chagecoldate <- sleepday %>%
rename (ActivityDate = SleepDay)
summary(sleepday_chagecoldate)
## Id ActivityDate TotalSleepRecords TotalMinutesAsleep
## Min. :1.504e+09 Min. :2016-04-12 Min. :1.000 Min. : 58.0
## 1st Qu.:3.977e+09 1st Qu.:2016-04-19 1st Qu.:1.000 1st Qu.:361.0
## Median :4.703e+09 Median :2016-04-27 Median :1.000 Median :433.0
## Mean :5.001e+09 Mean :2016-04-26 Mean :1.119 Mean :419.5
## 3rd Qu.:6.962e+09 3rd Qu.:2016-05-04 3rd Qu.:1.000 3rd Qu.:490.0
## Max. :8.792e+09 Max. :2016-05-12 Max. :3.000 Max. :796.0
## TotalTimeInBed
## Min. : 61.0
## 1st Qu.:403.0
## Median :463.0
## Mean :458.6
## 3rd Qu.:526.0
## Max. :961.0
head(sleepday_chagecoldate)
## # A tibble: 6 × 5
## Id ActivityDate TotalSleepRecords TotalMinutesAsleep TotalTimeInBed
## <dbl> <date> <dbl> <dbl> <dbl>
## 1 1503960366 2016-04-12 1 327 346
## 2 1503960366 2016-04-13 2 384 407
## 3 1503960366 2016-04-15 1 412 442
## 4 1503960366 2016-04-16 2 340 367
## 5 1503960366 2016-04-17 1 700 712
## 6 1503960366 2016-04-19 1 304 320
รวมข้อมูล 2 ชุด คือ sleepday_chagecoldate กับ daily_activity เพื่อนำไปทำกราฟต่อไป
merged_data <- merge(sleepday_chagecoldate,daily_activity, by=c('Id', 'ActivityDate'))
head(merged_data)
## Id ActivityDate TotalSleepRecords TotalMinutesAsleep TotalTimeInBed
## 1 1503960366 2016-04-12 1 327 346
## 2 1503960366 2016-04-13 2 384 407
## 3 1503960366 2016-04-15 1 412 442
## 4 1503960366 2016-04-16 2 340 367
## 5 1503960366 2016-04-17 1 700 712
## 6 1503960366 2016-04-19 1 304 320
## TotalSteps TotalDistance TrackerDistance LoggedActivitiesDistance
## 1 13162 8.50 8.50 0
## 2 10735 6.97 6.97 0
## 3 9762 6.28 6.28 0
## 4 12669 8.16 8.16 0
## 5 9705 6.48 6.48 0
## 6 15506 9.88 9.88 0
## VeryActiveDistance ModeratelyActiveDistance LightActiveDistance
## 1 1.88 0.55 6.06
## 2 1.57 0.69 4.71
## 3 2.14 1.26 2.83
## 4 2.71 0.41 5.04
## 5 3.19 0.78 2.51
## 6 3.53 1.32 5.03
## SedentaryActiveDistance VeryActiveMinutes FairlyActiveMinutes
## 1 0 25 13
## 2 0 21 19
## 3 0 29 34
## 4 0 36 10
## 5 0 38 20
## 6 0 50 31
## LightlyActiveMinutes SedentaryMinutes Calories
## 1 328 728 1985
## 2 217 776 1797
## 3 209 726 1745
## 4 221 773 1863
## 5 164 539 1728
## 6 264 775 2035
สร้างกราฟเพื่อดูความสัมพันธ์ของ TotalTimeInBed กับ TotalMinutesAsleep
ggplot(data = merged_data, aes(x = TotalTimeInBed, y = TotalMinutesAsleep))+
geom_smooth()+
labs(title="TotalTimeInBed Vs TotalMInutesAsleep")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
สร้างกราฟของ Calories กับ TotalMinutesAsleep
ggplot(data = merged_data, aes(x = Calories, y = TotalMinutesAsleep))+
geom_smooth()+
labs(title="Calories Vs TotalMInutesAsleep")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
สร้างกราฟ SedentaryMinutes กับ TotalMinutesAsleep
ggplot(data = merged_data, aes(x = SedentaryMinutes, y = TotalMinutesAsleep))+
geom_smooth()+
labs(title="SedentaryMinutes Vs TotalMInutesAsleep")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
สร้างกราฟ VeryActiveMinute,LightlyActiveMinutes กับ TotalMinutesAslee
ggplot(data = merged_data, aes(x =VeryActiveMinutes , y = TotalMinutesAsleep))+
geom_smooth()+
labs(title="VeryActiveMinutes Vs TotalMInutesAsleep")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
ggplot(data = merged_data, aes(x =LightlyActiveMinutes , y = TotalMinutesAsleep))+
geom_smooth()+
labs(title="LightlyActiveMinutes Vs TotalMInutesAsleep")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
สร้างกราฟของ TotalSteps กับ TotalMinutesAsleep
ggplot(data = merged_data, aes(x = TotalSteps, y = TotalMinutesAsleep))+
geom_smooth()+
labs(title="TotalSteps Vs TotalMInutesAsleep")
## `geom_smooth()` using method = 'loess' and formula = 'y ~ x'
สร้างกราฟ weekdays กับ Calories
ggplot(data = merged_data, aes(x = weekdays(ActivityDate), y = mean(Calories)))+
geom_bar(stat = "identity")+
labs(title="Weekdays Vs Calories")
สร้างกราฟ weekdays กับ TotalIntensity
ggplot(data = hourly_intensities, aes(x = weekdays(ActivityHour), y = TotalIntensity))+
geom_bar(stat = "identity")+
labs(title="Weekdays Vs TotalIntensity")
*สร้างข้อมูลใหม่เพื่อหาช่วงเวลาที่มี Intensity มากที่สุดหรือหาเทรนของ Intensity เมื่อเทียบกับเวลา
hourly_intensities_new <- hourly_intensities %>%
group_by(ActivityOnlyHour)%>%
drop_na() %>%
summarise(mean_int = mean(TotalIntensity))
ggplot(data = hourly_intensities_new, aes(x = ActivityOnlyHour, y = mean_int))+
geom_bar(stat = "identity")+
theme(axis.text.x = element_text(angle = 90))+
labs(title="ActivityOnlyHour Vs MeanTotalIntensity")