d0 <- read.csv(file = 'https://stats.dip.jp/01_ds/data/dirty_data1.csv')
summary(d0)
## 会社名 気温 湿度 風速
## Length:22 Min. :12.00 Min. :-50.00 Min. :-1.000
## Class :character 1st Qu.:20.00 1st Qu.: 30.00 1st Qu.: 1.000
## Mode :character Median :32.40 Median : 50.00 Median : 2.000
## Mean :28.18 Mean : 39.73 Mean : 2.052
## 3rd Qu.:34.10 3rd Qu.: 51.00 3rd Qu.: 4.000
## Max. :50.40 Max. : 60.00 Max. : 5.000
## NA's :1 NA's :1
library(DT)
datatable(d0)
d1 <- na.omit(d0)
summary(d1)
## 会社名 気温 湿度 風速
## Length:20 Min. :12.00 Min. :-50.00 Min. :-1.000
## Class :character 1st Qu.:18.50 1st Qu.: 27.50 1st Qu.: 0.750
## Mode :character Median :32.40 Median : 50.00 Median : 2.000
## Mean :27.97 Mean : 38.55 Mean : 2.105
## 3rd Qu.:34.10 3rd Qu.: 51.00 3rd Qu.: 4.000
## Max. :50.40 Max. : 60.00 Max. : 5.000
datatable(d1)
is.tp <- -20 <= d1$気温 & d1$気温 <= 50
is.hm <- 0 <= d1$湿度 & d1$湿度 <= 100
is.ws <- 0 <= d1$風速 & d1$風速 <= 70
summary(is.tp)
## Mode FALSE TRUE
## logical 2 18
summary(is.ws)
## Mode FALSE TRUE
## logical 1 19
d2 <- d1[is.tp & is.hm & is.ws, ]
datatable(d2)
d3 <- d2
d3$気温 <- round(d2$気温, 1)
d3$湿度 <- round(d2$湿度, 0)
d3$風速 <- round(d2$風速, 0)
datatable(d3)
d3$会社名
## [1] "ソニー" "Sony" "SONY" "sony"
## [5] "ソニー株式会社" "Sony(株)" "ソニー(株)" "sony"
## [9] "富士通" "Fujitsu" "Fujitu" "FUJITSU"
## [13] "富士通株式会社" "富士通(株)" "fujitsu" "FUJITSU"
AB.SONY <- c("ソニー", "Sony(株)", "ソニー(株)", "Sony", "SONY", "sony")
LAB.FUJITSU <- c("富士通", "富士通(株)", "Fujitsu", "FUJITSU", "fujitsu", "Fujitu", "fujitu")
is.fujitsu <- d3$会社名 %in% LAB.FUJITSU
d4 <- d3
d4$会社名[is.fujitsu] <- '富士通株式会社'
d4$会社名
## [1] "ソニー" "Sony" "SONY" "sony"
## [5] "ソニー株式会社" "Sony(株)" "ソニー(株)" "sony"
## [9] "富士通株式会社" "富士通株式会社" "富士通株式会社" "富士通株式会社"
## [13] "富士通株式会社" "富士通株式会社" "富士通株式会社" "富士通株式会社"
d3$会社名
## [1] "ソニー" "Sony" "SONY" "sony"
## [5] "ソニー株式会社" "Sony(株)" "ソニー(株)" "sony"
## [9] "富士通" "Fujitsu" "Fujitu" "FUJITSU"
## [13] "富士通株式会社" "富士通(株)" "fujitsu" "FUJITSU"
## [1] "ソニー" "Sony" "SONY" "sony"
## [5] "ソニー株式会社" "Sony(株)" "ソニー(株)" "sony"
## [9] "富士通" "Fujitsu" "Fujitu" "FUJITSU"
## [13] "富士通株式会社" "富士通(株)" "fujitsu" "FUJITSU"
# ソニー株式会社を意味する表記
# 富士通株式会社を意味する表記
LAB.FUJITSU <- c("富士通", "富士通(株)", "Fujitsu", "FUJITSU", "fujitsu", "Fujitu", "fujitu")
# %in%の記号は右辺の集合に含まれるか否かを示す論理記号
is.fujitsu <- d3$会社名 %in% LAB.FUJITSU
d4 <- d3
# 各メーカーの正式名称に統一
d4$会社名[is.fujitsu] <- '富士通株式会社'
d4$会社名
## [1] "ソニー" "Sony" "SONY" "sony"
## [5] "ソニー株式会社" "Sony(株)" "ソニー(株)" "sony"
## [9] "富士通株式会社" "富士通株式会社" "富士通株式会社" "富士通株式会社"
## [13] "富士通株式会社" "富士通株式会社" "富士通株式会社" "富士通株式会社"
## [1] "ソニー株式会社" "ソニー株式会社" "ソニー株式会社" "ソニー株式会社"
## [5] "ソニー株式会社" "ソニー株式会社" "ソニー株式会社" "ソニー株式会社"
## [9] "富士通株式会社" "富士通株式会社" "富士通株式会社" "富士通株式会社"
## [13] "富士通株式会社" "富士通株式会社" "富士通株式会社" "富士通株式会社"
# クリーンデータ(clean data)
datatable(d4)