www.tuhocr.comBạ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
Ở dataset 020.csv có:
bao nhiêu dòng, bao nhiêu cột
bao nhiêu giá trị missing value ở cột
sulfate
bao nhiêu giá trị missing value ở cột
nitrate
bao nhiêu giá trị missing value ở cả 2 cột sulfate
và nitrate
có bao nhiêu ngày quan sát nào có ĐỦ CẢ 2 giá trị theo dõi
Tìm giá trị trung bình, max, min ở từng cột cho 2 trường hợp:
loại missing value riêng từng cột
loại missing value cho toàn bộ (tức là ở những cột có đủ 2 giá trị)
Trong dataset này có hai chỉ tiêu sulfate và
nitrate đượ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ị sulfate và
nitrate.
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 135Xâ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.189369Liệt kê giá trị max và min ở 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