Skip to content

Latest commit

 

History

History
46 lines (39 loc) · 1.92 KB

chemtheatre.md

File metadata and controls

46 lines (39 loc) · 1.92 KB
library(tidyverse)

#ChemTHEATRE (https://chem-theatre.com)
#ChemTHEATREからのデータのダウンロード方法は,以下に記載。https://qiita.com/kein613/items/3f00958f3491c9248fff
#ファイル名はダウンロード日時に依存します。
sample_data <- read.csv("samples_20220608004554.tsv", header = T, sep = "\t")   # "invalid multibyte string at .."のエラーが出たらfileEncoding = "UTF-8-BOM"を追加する

#データをシンプルにするのに,列を選択してます。
samples <- select(sample_data, SampleID, CollectionYear, CollectionLatitudeFrom, CollectionLongitudeFrom)
View(samples)
meas_data <- read.csv("measureddata_20220608004556.tsv", header = T, sep = "\t")  # "invalid multibyte string at .."のエラーが出たらfileEncoding = "UTF-8-BOM"を追加する
View(meas_data)

#PFOSとPFOAのデータだけを抽出。
#各濃度データに対してサンプル情報を付加。
conc <- meas_data %>% filter(ChemicalName == "PFOS" | ChemicalName == "PFOA")
View(conc)
joined <- left_join(conc, samples, by = "SampleID")
View(joined)

#テーブルを縦持ちから横持ちにして,PFOSとPFOAの濃度の和を計算。
dat <- joined %>%
  pivot_wider(id_cols = c(SampleID, CollectionLatitudeFrom, CollectionLongitudeFrom), names_from = ChemicalName, values_from = MeasuredValue)
dat1 <- dat %>%
  mutate(sum_PFC = select(., c("PFOS", "PFOA")) %>% rowSums(na.rm = TRUE))
View(dat1)

#PFOSとPFOAの濃度の和が50ng/Lを超過する地点のみを抽出。
dat2 <- filter(dat1, sum_PFC > 0.05)
View(dat2)

#テーブルを横持ちから縦持ちに
dat3 <- dat2 %>%
  pivot_longer(cols = c("PFOS", "PFOA"),
               names_to = "Chemical",
               values_to = "Conc")
View(dat3)

#積み上げ棒グラフで表示
p <- ggplot(dat3, aes(x = SampleID, y = Conc, fill = Chemical)) +
  geom_bar(stat = "identity")
p
ggsave("graph.png", width = 8, height = 4)