Đề bài

Bạn có folder này chứa 332 file .csv tương ứng 332 cảm biến theo dõi chỉ tiêu sulfate và nitrate chất lượng nước ở các địa điểm khác nhau (số liệu mô phỏng, không có thực). Nguồn dataset từ Coursera/Data Science Specialization.

Download dataset https://tinyurl.com/4sm9ce76 sau đó giải nén ra folder specdata rồi đặt trong folder project R.

Cấu trúc 1 file .csv như sau:

data_020 <- read.csv("specdata/020.csv")
dim(data_020)
## [1] 1461    4
head(data_020)
##         Date sulfate nitrate ID
## 1 2002-01-01      NA      NA 20
## 2 2002-01-02      NA      NA 20
## 3 2002-01-03      NA      NA 20
## 4 2002-01-04      NA      NA 20
## 5 2002-01-05      NA      NA 20
## 6 2002-01-06      NA      NA 20

Câu 1

Ở dataset 020.csv có:

  1. bao nhiêu dòng, bao nhiêu cột

  2. bao nhiêu giá trị missing value ở cột sulfate

  3. bao nhiêu giá trị missing value ở cột nitrate

  4. bao nhiêu giá trị missing value ở cả 2 cột sulfatenitrate

  5. có bao nhiêu ngày quan sát nào có ĐỦ CẢ 2 giá trị theo dõi

  6. Tìm giá trị trung bình, max, min ở từng cột cho 2 trường hợp:

    1. loại missing value riêng từng cột

    2. loại missing value cho toàn bộ (tức là ở những cột có đủ 2 giá trị)

Câu 2

Trong dataset này có hai chỉ tiêu sulfatenitrate được cảm biến đo độc lập nhau. Có những ngày ghi nhận được giá trị sulfate hoặc nitrate, có những ngày không ghi nhận giá trị gì cả (missing value), cũng như có ngày ghi nhận đầy đủ cả 2 giá trị sulfatenitrate.

Bạn hãy xây dựng function để tìm ra có bao nhiêu giá trị quan sát đầy đủ tương ứng ở từng cảm biến, để làm cơ sở đánh giá xem các cảm biến ở những vị trí khác nhau thì số lượng kết quả theo dõi có đồng đều nhau hay không.

# gọi function ra, đưa tham số là các dataset id cần tìm xem có bao nhiêu ngày có đầy đủ giá trị quan sát

# > complete("specdata", id = 18:22)

#    id  full_quan_sat
# 1 18   84
# 2 19  353
# 3 20  124 ← đây chính là kết quả câu 1e) khi tính thủ công
# 4 21  426
# 5 22  135

Câu 3

Xây dựng function trả về kết quả mean ở từng chỉ tiêu theo giá trị id của mỗi dataset. Cách mà function đó hoạt động như sau:

# > pollutantmean("specdata", "nitrate", 3:10)
# [1] 0.7471877

# > pollutantmean("specdata", "nitrate", 20)
# [1] 0.7780469

# > pollutantmean("specdata", "sulfate", 1:332)
# [1] 3.189369

Câu 4

Liệt kê giá trị maxmin ở cả 2 chỉ tiêu ở các dãy cảm biến bất kỳ. Trình bày format theo kiểu này (gợi ý dùng lệnh merge()):

##     ID     Date.x nitrate.x sulfate.x      note.x sep     Date.y nitrate.y sulfate.y      note.y
## 1  280 2005-09-07        NA       6.3 max_sulfate   | 2001-01-01      9.76       2.6 max_nitrate
## 2  281 2000-10-21      0.26      18.0 max_sulfate   | 2000-11-20      2.05       2.1 max_nitrate
## 3  282 2000-10-24      0.69      15.2 max_sulfate   | 2001-02-04      3.81       2.4 max_nitrate
## 4  283 2000-10-24      0.85      16.3 max_sulfate   | 2001-02-03      2.97       3.6 max_nitrate
## 5  284 2002-09-14        NA      27.2 max_sulfate   | 2001-01-22      4.58       3.1 max_nitrate
## 6  285 2000-10-24      0.41      18.4 max_sulfate   | 2000-12-05      2.65       4.2 max_nitrate
## 7  286 2002-08-30        NA      14.8 max_sulfate   |       <NA>        NA        NA        <NA>
## 8  287 2000-10-24      0.90      16.3 max_sulfate   | 2001-01-04      5.59       3.8 max_nitrate
## 9  288 2002-08-29        NA      19.0 max_sulfate   | 2009-12-09      2.08       2.1 max_nitrate
## 10 288 2002-09-11        NA      19.0 max_sulfate   | 2009-12-09      2.08       2.1 max_nitrate
## 11 289 2005-08-02        NA       5.7 max_sulfate   |       <NA>        NA        NA        <NA>
## 12 290 2002-09-14        NA      24.8 max_sulfate   | 2001-01-25      2.05       5.5 max_nitrate
## 13 291 2002-08-30        NA      18.0 max_sulfate   |       <NA>        NA        NA        <NA>
## 14 292 2005-06-21        NA      10.2 max_sulfate   |       <NA>        NA        NA        <NA>
## 15 293 2005-04-16        NA       5.6 max_sulfate   |       <NA>        NA        NA        <NA>
## 16 294 2005-06-27        NA      12.3 max_sulfate   |       <NA>        NA        NA        <NA>
## 17 295 2000-10-21      0.69      12.4 max_sulfate   | 2000-12-05      1.54       2.9 max_nitrate
## 18 296 2002-08-30        NA      13.9 max_sulfate   | 2001-02-12      2.62       5.3 max_nitrate
## 19 297 2002-09-14        NA      19.2 max_sulfate   | 2001-05-01      0.57       5.3 max_nitrate
## 20 298 2002-12-10     15.10       8.7 max_sulfate   | 2002-02-07     38.20       6.2 max_nitrate
## 21 299 2004-01-22     16.40       4.7 max_sulfate   | 2004-02-15     37.50       4.4 max_nitrate
## 22 300 2001-01-04     18.70      14.6 max_sulfate   | 2002-02-07     41.60       6.5 max_nitrate