データ修正2025年2月

データ修正2025年2月

ホームページに戻る

元データ「_ori.csv」から「無印.csv」を作った過程

横川

1999

 # 機器不良のため、気温、降水量を他観測所から引用
library(dplyr)
library(ggplot2)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをYokoXXXX_oriに待避
Yoko1999_ori <- Yoko1999

 ## RainCount, XXXX/4/16 0:00 - 5/10 23:50を見晴し土場と置換
 # 置換する期間のフィルタリング
start_date = as.POSIXct("1999-04-16 00:00")
end_date = as.POSIXct("1999-05-10 23:50")

 # MihaXXXXの該当期間のデータを抽出
Subset = Miha1999 %>%
  filter(DateTime >= start_date & DateTime <= end_date)

 # YokoXXXXの該当期間のデータを置換
Yoko1999 = Yoko1999 %>%
  mutate(RainCount = ifelse(DateTime >= start_date & DateTime <= end_date, Subset$RainCount, RainCount))

 # 結果の確認
sum(Yoko1999$RainCount)


 ## AirTemp、苗畑と相関を確認
 # 両データフレームをDateTimeで結合
merged_data <- inner_join(Yoko1999, Nae1999, by = "DateTime", suffix = c("_Yoko", "_Nae"))

 # NAを含む行を削除
merged_data <- na.omit(merged_data)

 # 回帰分析を実行
model <- lm(AirTemp_Yoko ~ AirTemp_Nae, data = merged_data)

 # 回帰モデルの確認
summary(model)

 # 散布図のプロット
ggplot(merged_data, aes(x = AirTemp_Yoko, y = AirTemp_Nae)) +
  geom_point() +
  labs(x = "Nae1999", y = "Yoko1999")+
  theme_minimal()

 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1999-07-08 00:00", "1999-07-08 23:50"),
  c("1999-07-10 00:00", "1999-07-10 23:50"),
  c("1999-07-16 00:00", "1999-07-17 23:50"),
  c("1999-07-20 00:00", "1999-07-22 23:50"),
  c("1999-07-24 00:00", "1999-07-24 23:50"),
  c("1999-07-26 00:00", "1999-07-26 23:50"),
  c("1999-07-30 00:00", "1999-07-30 23:50"),
  c("1999-08-29 00:00", "1999-08-29 23:50"),
  c("1999-09-27 00:00", "1999-09-27 23:50"),
  c("1999-09-30 00:00", "1999-09-30 23:50")
)

 # 各日付範囲でデータを置換
for (range in date_ranges) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  
  # NaeXXXXの該当期間のデータを抽出
  Subset <- merged_data %>%
    filter(DateTime >= start_date & DateTime <= end_date)
  
  # 回帰モデルを適用して予測値を計算
  Predicted <- predict(model, newdata = Subset)
  
  # YokoXXXXの該当期間のデータを置換
  Yoko1999 <- Yoko1999 %>%
    mutate(AirTemp = ifelse(DateTime >= start_date & DateTime <= end_date, Predicted, AirTemp))
}

 # YokoXXXXをデスクトップにcsvファイルとして保存
Yoko1999$DateTime <- format(Yoko1999$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Yoko1999, file = "C:/Users/.../Desktop/Yoko1999.csv", row.names = FALSE)
Yoko1999$DateTime = as.POSIXct(Yoko1999$DateTime, format='%Y/%m/%d %H:%M')

2001

 # 機器不良のため、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをYokoXXXX_oriに待避
Yoko2001_ori <- Yoko2001

 ## RainCount, 2001/4/1 0:00 - 7/31 23:50を見晴し土場と置換
 # 置換する期間のフィルタリング
start_date = as.POSIXct("2001-04-01 00:00")
end_date = as.POSIXct("2001-07-31 23:50")

 # Miha_の該当期間のデータを抽出
Subset = Miha2001 %>%
  filter(DateTime >= start_date & DateTime <= end_date)

 # Yoko_の該当期間のデータを置換
Yoko2001 = Yoko2001 %>%
  mutate(RainCount = ifelse(DateTime >= start_date & DateTime <= end_date, Subset$RainCount, RainCount))

 # 結果の確認
sum(Yoko2001$RainCount, na.rm = TRUE)*0.5

 # YokoXXXXをデスクトップにcsvファイルとして保存
Yoko2001$DateTime <- format(Yoko2001$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Yoko2001, file = "C:/Users/.../Desktop/Yoko2001.csv", row.names = FALSE)
Yoko2001$DateTime = as.POSIXct(Yoko2001$DateTime, format='%Y/%m/%d %H:%M')

2006

 # 機器不良のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをYokoXXXX_oriに待避
Yoko2006_ori <- Yoko2006

 ## RainCount, 2006/8/21 0:00 - 8/23 23:50を見晴し土場と置換
 # 置換する期間のフィルタリング
start_date = as.POSIXct("2006-08-21 00:00")
end_date = as.POSIXct("2006-08-23 23:50")

 # MihaXXXXの該当期間のデータを抽出
Subset = Miha2006 %>%
  filter(DateTime >= start_date & DateTime <= end_date)

 # Yoko2006の該当期間のデータを置換
Yoko2006 = Yoko2006 %>%
  mutate(RainCount = ifelse(DateTime >= start_date & DateTime <= end_date, Subset$RainCount, RainCount))

 # 結果の確認
sum(Yoko2006$RainCount, na.rm = TRUE)*0.5


 ## AirTemp、2006/8/21 0:00 - 8/23 23:50を見晴し土場と置換

 # YokoXXXXの該当期間のデータを置換
Yoko2006 = Yoko2006 %>%
 mutate(AirTemp = ifelse(DateTime >= start_date & DateTime <= end_date, Subset$AirTemp, AirTemp))

 # YokoXXXXをデスクトップにcsvファイルとして保存
Yoko2006$DateTime <- format(Yoko2006$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Yoko2006, file = "C:/Users/.../Desktop/Yoko2006.csv", row.names = FALSE)
Yoko2006$DateTime = as.POSIXct(Yoko2006$DateTime, format='%Y/%m/%d %H:%M')

2007

 # 機器不良のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをYokoXXXX_oriに待避
Yoko2007_ori <- Yoko2007

 # 最初からやり直す
Yoko2007 = read.csv("C:/Users/.../desktop/Yoko2007.csv", stringsAsFactors = FALSE)

Yoko2007$DateTime = as.POSIXct(Yoko2007$DateTime, format='%Y/%m/%d %H:%M')

 ## RainCount, AirTemp, 以下の複数期間を見晴し土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2007-04-09 00:00", "2007-05-01 23:50"),
  c("2007-05-30 00:00", "2007-06-19 23:50"),
  c("2007-09-12 00:00", "2007-09-20 23:50"),
  c("2007-10-31 00:00", "2007-11-05 23:50")
)

 # 各日付範囲でデータを置換
 # MihaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Miha2007 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # YokoXXXXの該当期間のデータを置換
Yoko2007 <- Yoko2007 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Yoko2007$RainCount, na.rm = TRUE)*0.5

 # YokoXXXXをデスクトップにcsvファイルとして保存
Yoko2007$DateTime <- format(Yoko2007$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Yoko2007, file = "C:/Users/.../Desktop/Yoko2007.csv", row.names = FALSE)
Yoko2007$DateTime = as.POSIXct(Yoko2007$DateTime, format='%Y/%m/%d %H:%M')

2008

 # 機器不良のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをYokoXXXX_oriに待避
Yoko2008_ori <- Yoko2008

 # 最初からやり直す
Yoko2008 = read.csv("C:/Users/.../desktop/Yoko2008.csv", stringsAsFactors = FALSE)

Yoko2008$DateTime = as.POSIXct(Yoko2008$DateTime, format='%Y/%m/%d %H:%M')

 ## RainCount, AirTemp, 以下の複数期間を見晴し土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2008-05-01 00:00", "2008-05-23 23:50"),
  c("2008-06-21 00:00", "2008-07-01 23:50"),
  c("2008-09-20 00:00", "2008-10-08 23:50")
)

 # 各日付範囲でデータを置換
 # MihaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Miha2008 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # YokoXXXXの該当期間のデータを置換
Yoko2008 <- Yoko2008 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Yoko2008$RainCount, na.rm = TRUE)*0.5
mean(Yoko2008$AirTemp, na.rm = TRUE)

 # YokoXXXXをデスクトップにcsvファイルとして保存
Yoko2008$DateTime <- format(Yoko2008$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Yoko2008, file = "C:/Users/.../Desktop/Yoko2008.csv", row.names = FALSE)
Yoko2008$DateTime = as.POSIXct(Yoko2008$DateTime, format='%Y/%m/%d %H:%M')

2009

 # 機器不良のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをYokoXXXX_oriに待避
Yoko2009_ori <- Yoko2009

 ## RainCount, AirTemp, 以下の複数期間を見晴し土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2009-08-09 00:00", "2009-08-18 23:50"))

 # 各日付範囲でデータを置換
 # MihaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Miha2009 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # YokoXXXXの該当期間のデータを置換
Yoko2009 <- Yoko2009 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Yoko2009$RainCount, na.rm = TRUE)*0.5
mean(Yoko2009$AirTemp, na.rm = TRUE)

 # YokoXXXXをデスクトップにcsvファイルとして保存
Yoko2009$DateTime <- format(Yoko2009$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Yoko2009, file = "C:/Users/.../Desktop/Yoko2009.csv", row.names = FALSE)
Yoko2009$DateTime = as.POSIXct(Yoko2009$DateTime, format='%Y/%m/%d %H:%M')

2011

 # 元データの見直し
library(dplyr)
library(lubridate)
library(tidyr)

 # 最初からやり直す
Yoko2011 = read.csv("C:/Users/.../Desktop/Yoko2011.csv", stringsAsFactors = FALSE)

Yoko2011$DateTime = as.POSIXct(Yoko2011$DateTime, format='%Y/%m/%d %H:%M')

 # 結果の確認
sum(Yoko2011$RainCount, na.rm = TRUE)*0.5
mean(Yoko2011$AirTemp, na.rm = TRUE)

2014

 # 機器不良のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # 最初からやり直す
Yoko2014 = read.csv("C:/Users/.../desktop/Yoko2014.csv", stringsAsFactors = FALSE)

Yoko2014$DateTime = as.POSIXct(Yoko2014$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをYokoXXXX_oriに待避
Yoko2014_ori <- Yoko2014

 ## RainCount, AirTemp, 以下の複数期間を見晴し土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2014-04-10 00:00", "2014-04-28 23:50"),
  c("2014-09-22 00:00", "2014-09-30 23:50"),
  c("2014-10-03 00:00", "2014-10-03 23:50"),
  c("2014-10-06 00:00", "2014-10-11 23:50"),
  c("2014-11-11 00:00", "2014-11-30 23:50")
)

 # 各日付範囲でデータを置換
 # MihaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Miha2014 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # YokoXXXXの該当期間のデータを置換
Yoko2014 <- Yoko2014 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Yoko2014$RainCount, na.rm = TRUE)*0.5
mean(Yoko2014$AirTemp, na.rm = TRUE)

 # YokoXXXXをデスクトップにcsvファイルとして保存
Yoko2014$DateTime <- format(Yoko2014$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Yoko2014, file = "C:/Users/.../Desktop/Yoko2014.csv", row.names = FALSE)
Yoko2014$DateTime = as.POSIXct(Yoko2014$DateTime, format='%Y/%m/%d %H:%M')

2015

 # 機器不良のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # 最初からやり直す
Yoko2015 = read.csv("C:/Users/.../desktop/Yoko2015.csv", stringsAsFactors = FALSE)

Yoko2015$DateTime = as.POSIXct(Yoko2015$DateTime, format='%Y/%m/%d %H:%M')

 ## RainCount, AirTemp, 以下の複数期間を見晴し土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2015-01-04 00:00", "2015-01-04 23:50"),
  c("2015-01-31 00:00", "2015-02-03 23:50"),
  c("2015-02-23 00:00", "2015-02-23 23:50")
)

 # 各日付範囲でデータを置換
 # MihaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Miha2015 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # YokoXXXXの該当期間のデータを置換
Yoko2015 <- Yoko2015 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Yoko2015$RainCount, na.rm = TRUE)*0.5
mean(Yoko2015$AirTemp, na.rm = TRUE)

 # YokoXXXXをデスクトップにcsvファイルとして保存
Yoko2015$DateTime <- format(Yoko2015$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Yoko2015, file = "C:/Users/.../Desktop/Yoko2015.csv", row.names = FALSE)
Yoko2015$DateTime = as.POSIXct(Yoko2015$DateTime, format='%Y/%m/%d %H:%M')

2016

 # 元データの見直し
library(dplyr)
library(lubridate)
library(tidyr)

 # 最初からやり直す(のみ、_oriの生成なし)
Yoko2016 = read.csv("C:/Users/.../desktop/Yoko2016.csv", stringsAsFactors = FALSE)

Yoko2016$DateTime = as.POSIXct(Yoko2016$DateTime, format='%Y/%m/%d %H:%M')

 # 結果の確認
sum(Yoko2016$RainCount, na.rm = TRUE)*0.5
mean(Yoko2016$AirTemp, na.rm = TRUE)

 # YokoXXXXをデスクトップにcsvファイルとして保存
write.csv(Yoko2016, file = "C:/Users/.../Desktop/Yoko2016.csv", row.names = FALSE)

2021

 # 機器不良のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをYokoXXXX_oriに待避
Yoko2021_ori <- Yoko2021

 ## RainCount, AirTemp, 以下の複数期間を見晴し土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2021-03-04 00:00", "2021-03-05 23:50")
)

 # 各日付範囲でデータを置換
 # MihaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Miha2021 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # YokoXXXXの該当期間のデータを置換
Yoko2021 <- Yoko2021 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Yoko2021$RainCount, na.rm = TRUE)*0.5
mean(Yoko2021$AirTemp, na.rm = TRUE)

 # YokoXXXXをデスクトップにcsvファイルとして保存
Yoko2021$DateTime <- format(Yoko2021$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Yoko2021, file = "C:/Users/.../Desktop/Yoko2021.csv", row.names = FALSE)
Yoko2021$DateTime = as.POSIXct(Yoko2021$DateTime, format='%Y/%m/%d %H:%M')

2022

 # 機器不良のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをYokoXXXX_oriに待避
Yoko2022_ori <- Yoko2022

 ## RainCount, AirTemp, 以下の複数期間を見晴し土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2022-05-26 00:00", "2022-06-26 23:50"),
  c("2022-10-26 00:00", "2022-11-24 23:50")
)

 # 各日付範囲でデータを置換
 # MihaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Miha2022 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # YokoXXXXの該当期間のデータを置換
Yoko2022 <- Yoko2022 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Yoko2022$RainCount, na.rm = TRUE)*0.5
mean(Yoko2022$AirTemp, na.rm = TRUE)

 # YokoXXXXをデスクトップにcsvファイルとして保存
Yoko2022$DateTime <- format(Yoko2022$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Yoko2022, file = "C:/Users/.../Desktop/Yoko2022.csv", row.names = FALSE)
Yoko2022$DateTime = as.POSIXct(Yoko2022$DateTime, format='%Y/%m/%d %H:%M')

ホームページに戻る

見晴

1998

 # 機器不調のため、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha1998_ori <- Miha1998

 ## RainCountを横川土場と置換
 # 置換する期間のフィルタリング
start_date = as.POSIXct("1998-06-23 00:00")
end_date = as.POSIXct("1998-06-30 23:50")

 # Yoko_の該当期間のデータを抽出
Subset = Yoko1998 %>%
  filter(DateTime >= start_date & DateTime <= end_date)

 # Miha_の該当期間のデータを置換
Miha1998 = Miha1998 %>%
  mutate(RainCount = ifelse(DateTime >= start_date & DateTime <= end_date, Subset$RainCount, RainCount))

 # 結果の確認
sum(Miha1998$RainCount, na.rm = TRUE)*0.5

 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha1998$DateTime <- format(Miha1998$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha1998, file = "C:/Users/.../Desktop/Miha1998.csv", row.names = FALSE)
Miha1998$DateTime = as.POSIXct(Miha1998$DateTime, format='%Y/%m/%d %H:%M')

2000

 # 機器不調のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)
library(ggplot2)

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha2000_ori <- Miha2000

 ## RainCountを横川土場と置換
 # 置換する期間のフィルタリング
start_date = as.POSIXct("2000-07-04 00:00")
end_date = as.POSIXct("2000-07-17 23:50")

 # YokoXXXXの該当期間のデータを抽出
Subset = Yoko2000 %>%
  filter(DateTime >= start_date & DateTime <= end_date)

 # MihaXXXXの該当期間のデータを置換
Miha2000 = Miha2000 %>%
  mutate(RainCount = ifelse(DateTime >= start_date & DateTime <= end_date, Subset$RainCount, RainCount))

 # 結果の確認
sum(Miha2000$RainCount, na.rm = TRUE)*0.5


 ## AirTemp、横川と相関を確認
 # 両データフレームをDateTimeで結合
merged_data <- inner_join(Miha2000, Yoko2000, by = "DateTime", suffix = c("_Miha", "_Yoko"))

 # NAを含む行を削除
merged_data <- na.omit(merged_data)

 # 回帰分析を実行
model <- lm(AirTemp_Miha ~ AirTemp_Yoko, data = merged_data)

 # 回帰モデルの確認
summary(model)

 # 散布図のプロット
ggplot(merged_data, aes(x = AirTemp_Yoko, y = AirTemp_Miha)) +
  geom_point() +
  labs(x = "Yoko2000", y = "Miha2000")+
  theme_minimal()

 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2000-07-04 00:00", "2000-07-17 23:50")
)

 # 各日付範囲でデータを置換
for (range in date_ranges) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  
  # YokoXXXXの該当期間のデータを抽出
  Subset <- merged_data %>%
    filter(DateTime >= start_date & DateTime <= end_date)
  
  # 回帰モデルを適用して予測値を計算
  Predicted <- predict(model, newdata = Subset)
  
  # MihaXXXXの該当期間のデータを置換
  Miha2000 <- Miha2000 %>%
    mutate(AirTemp = ifelse(DateTime >= start_date & DateTime <= end_date, Predicted, AirTemp))
}

 # 結果の確認
sum(Miha2000$RainCount, na.rm = TRUE)*0.5
mean(Miha2000$AirTemp, na.rm = TRUE)

 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha2000$DateTime <- format(Miha2000$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha2000, file = "C:/Users/.../Desktop/Miha2000.csv", row.names = FALSE)
Miha2000$DateTime = as.POSIXct(Miha2000$DateTime, format='%Y/%m/%d %H:%M')

2003

 # 機器不調のため、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha2003_ori <- Miha2003

 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2003-06-21 00:00", "2003-07-31 23:50")
)

 # 各日付範囲でデータを置換
 # YokoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Yoko2003 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # MihaXXXXの該当期間のデータを置換
Miha2003 <- Miha2003 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Miha2003$RainCount, na.rm = TRUE)*0.5

 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha2003$DateTime <- format(Miha2003$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha2003, file = "C:/Users/.../Desktop/Miha2003.csv", row.names = FALSE)
Miha2003$DateTime = as.POSIXct(Miha2003$DateTime, format='%Y/%m/%d %H:%M')

2006

 # 機器不調のため、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha2006_ori <- Miha2006

 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2006-09-15 00:00", "2006-11-30 23:50")
)

 # 各日付範囲でデータを置換
 # YokoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Yoko2006 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # MihaXXXXの該当期間のデータを置換
Miha2006 <- Miha2006 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Miha2006$RainCount, na.rm = TRUE)*0.5

 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha2006$DateTime <- format(Miha2006$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha2006, file = "C:/Users/.../Desktop/Miha2006.csv", row.names = FALSE)
Miha2006$DateTime = as.POSIXct(Miha2006$DateTime, format='%Y/%m/%d %H:%M')

2007

 # 機器不調のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # 最初からやり直す
Miha2007 = read.csv("C:/Users/.../desktop/Miha2007.csv", stringsAsFactors = FALSE)

Miha2007$DateTime = as.POSIXct(Miha2007$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha2007_ori <- Miha2007

 ## RainCount, AirTemp, 以下の期間を横川土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2007-03-12 00:00", "2007-03-14 23:50")
)

 # 各日付範囲でデータを置換
 # YokoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Yoko2007 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # MihaXXXXの該当期間のデータを置換
Miha2007 <- Miha2007 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Miha2007$RainCount, na.rm = TRUE)*0.5
mean(Miha2007$AirTemp, na.rm = TRUE)

Miha2007 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha2007$DateTime <- format(Miha2007$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha2007, file = "C:/Users/.../Desktop/Miha2007.csv", row.names = FALSE)
Miha2007$DateTime = as.POSIXct(Miha2007$DateTime, format='%Y/%m/%d %H:%M')

2008

 # 機器不調のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha2008_ori <- Miha2008

 ## RainCount, AirTemp, 以下の期間を横川土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2008-07-07 00:00", "2008-07-09 23:50"),
  c("2008-10-19 00:00", "2008-10-20 23:50")
)

 # 各日付範囲でデータを置換
 # YokoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Yoko2008 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # MihaXXXXの該当期間のデータを置換
Miha2008 <- Miha2008 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Miha2008$RainCount, na.rm = TRUE)*0.5
mean(Miha2008$AirTemp, na.rm = TRUE)

Miha2008 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Miha2008 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha2008$DateTime <- format(Miha2008$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha2008, file = "C:/Users/.../Desktop/Miha2008.csv", row.names = FALSE)
Miha2008$DateTime = as.POSIXct(Miha2008$DateTime, format='%Y/%m/%d %H:%M')

2011

 # 機器不調のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # 最初からやり直す
Miha2011 = read.csv("C:/Users/.../desktop/Miha2011.csv", stringsAsFactors = FALSE)

Miha2011$DateTime = as.POSIXct(Miha2011$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha2011_ori <- Miha2011

 ## RainCount, AirTemp, 以下の期間を横川土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2011-05-13 00:00", "2011-06-03 23:50")
)

 # 各日付範囲でデータを置換
 # YokoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Yoko2011 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # MihaXXXXの該当期間のデータを置換
Miha2011 <- Miha2011 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Miha2011$RainCount, na.rm = TRUE)*0.5
mean(Miha2011$AirTemp, na.rm = TRUE)

Miha2011 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Miha2011 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Miha2011 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

Miha2011 %>% filter(month(DateTime) == 5) %>% summarize(Ave_airtemp = mean(AirTemp, na.rm = TRUE))
Miha2011 %>% filter(month(DateTime) == 6) %>% summarize(Ave_airtemp = mean(AirTemp, na.rm = TRUE))
Miha2011 %>% filter(month(DateTime) == 8) %>% summarize(Ave_airtemp = mean(AirTemp, na.rm = TRUE))


 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha2011$DateTime <- format(Miha2011$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha2011, file = "C:/Users/.../Desktop/Miha2011.csv", row.names = FALSE)
Miha2011$DateTime = as.POSIXct(Miha2011$DateTime, format='%Y/%m/%d %H:%M')

2012

 # 機器不調のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha2012_ori <- Miha2012

 ## RainCount, AirTemp, 以下の期間を横川土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2012-01-24 00:00", "2012-01-30 23:50")
)

 # 各日付範囲でデータを置換
 # YokoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Yoko2012 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # MihaXXXXの該当期間のデータを置換
Miha2012 <- Miha2012 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Miha2012$RainCount, na.rm = TRUE)*0.5
mean(Miha2012$AirTemp, na.rm = TRUE)

Miha2012 %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Miha2012 %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha2012$DateTime <- format(Miha2012$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha2012, file = "C:/Users/.../Desktop/Miha2012.csv", row.names = FALSE)
Miha2012$DateTime = as.POSIXct(Miha2012$DateTime, format='%Y/%m/%d %H:%M')

2014

 # 機器不調のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # 最初からやり直す
Miha2014 = read.csv("C:/Users/.../desktop/Miha2014.csv", stringsAsFactors = FALSE)

Miha2014$DateTime = as.POSIXct(Miha2014$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha2014_ori <- Miha2014

 ## RainCount, AirTemp, 以下の期間を横川土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2014-03-05 00:00", "2014-04-09 23:50"),
  c("2014-08-28 00:00", "2014-09-06 23:50")
)

 # 各日付範囲でデータを置換
 # YokoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Yoko2014 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # MihaXXXXの該当期間のデータを置換
Miha2014 <- Miha2014 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Miha2014$RainCount, na.rm = TRUE)*0.5
mean(Miha2014$AirTemp, na.rm = TRUE)

Miha2014 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Miha2014 %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Miha2014 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Miha2014 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

Miha2014 %>% filter(month(DateTime) == 3) %>% summarize(Ave_airtemp = mean(AirTemp, na.rm = TRUE))
Miha2014 %>% filter(month(DateTime) == 4) %>% summarize(Ave_airtemp = mean(AirTemp, na.rm = TRUE))
Miha2014 %>% filter(month(DateTime) == 8) %>% summarize(Ave_airtemp = mean(AirTemp, na.rm = TRUE))
Miha2014 %>% filter(month(DateTime) == 9) %>% summarize(Ave_airtemp = mean(AirTemp, na.rm = TRUE))

df = Miha2014 %>% filter(month(DateTime) == 3) %>% group_by(date=date(DateTime)) %>% reframe(Rain=sum(RainCount, na.rm=FALSE)*0.5)

 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha2014$DateTime <- format(Miha2014$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha2014, file = "C:/Users/.../Desktop/Miha2014.csv", row.names = FALSE)
Miha2014$DateTime = as.POSIXct(Miha2014$DateTime, format='%Y/%m/%d %H:%M')

2016

 # 機器不調のため、気温、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha2016_ori <- Miha2016

 ## RainCount, AirTemp, 以下の期間を横川土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2016-07-25 00:00", "2016-08-24 23:50")
)

 # 各日付範囲でデータを置換
 # YokoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Yoko2016 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # MihaXXXXの該当期間のデータを置換
Miha2016 <- Miha2016 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount),
   AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new, AirTemp)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Miha2016$RainCount, na.rm = TRUE)*0.5
mean(Miha2016$AirTemp, na.rm = TRUE)

Miha2016 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Miha2016 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha2016$DateTime <- format(Miha2016$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha2016, file = "C:/Users/.../Desktop/Miha2016.csv", row.names = FALSE)
Miha2016$DateTime = as.POSIXct(Miha2016$DateTime, format='%Y/%m/%d %H:%M')

2017

 # 機器不調のため、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをMihaXXXX_oriに待避
Miha2017_ori <- Miha2017

 ## RainCount, 以下の期間を横川土場と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2017-07-13 00:00", "2017-08-29 23:50")
)

 # 各日付範囲でデータを置換
 # YokoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Yoko2017 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # MihaXXXXの該当期間のデータを置換
Miha2017 <- Miha2017 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Miha2017$RainCount, na.rm = TRUE)*0.5
mean(Miha2017$AirTemp, na.rm = TRUE)

Miha2017 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Miha2017 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # MihaXXXXをデスクトップにcsvファイルとして保存
Miha2017$DateTime <- format(Miha2017$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Miha2017, file = "C:/Users/.../Desktop/Miha2017.csv", row.names = FALSE)
Miha2017$DateTime = as.POSIXct(Miha2017$DateTime, format='%Y/%m/%d %H:%M')

ホームページに戻る

苗畑

1999

 # 機器不調のため、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae1999_ori <- Nae1999

 ## RainCount, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1999-06-25 00:00", "1999-09-30 23:50")
)

 # 各日付範囲でデータを置換
 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya1999 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae1999 <- Nae1999 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Nae1999$RainCount, na.rm = TRUE)*0.5

Nae1999 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae1999 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae1999 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae1999 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae1999$DateTime <- format(Nae1999$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae1999, file = "C:/Users/.../Desktop/Nae1999.csv", row.names = FALSE)
Nae1999$DateTime = as.POSIXct(Nae1999$DateTime, format='%Y/%m/%d %H:%M')

2000

 # 機器不調のため、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae2000_ori <- Nae2000

 ## 6~10月の降水量がおかしい、別途記録計から引用する。補間元は日雨量しかない。
 # 該当期間の日降水量(153日分)
DailyPrecip = c(0.0, 0.0, 0.0, 0.0, 5.5, 17.0, 38.0, 1.5, 1.5, 10.5, 0.0, 0.0, 5.0, 24.5, 26.5, 2.0, 0.0, 0.0, 12.5, 0.0, 3.5, 0.5, 1.0, 2.5, 1.5, 0.0, 2.5, 9.0, 80.5, 13.5, 0.0, 0.0, 0.0, 10.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 30.0, 0.0, 0.0, 10.0, 64.0, 34.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 11.5, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 5.5, 1.0, 1.0, 0.5, 3.5, 9.0, 1.0, 0.0, 20.0, 7.0, 3.5, 0.0, 0.5, 0.0, 0.5, 0.5, 0.0, 0.5, 0.0, 42.5, 156.5, 17.0, 0.0, 0.0, 10.5, 16.0, 13.0, 9.5, 89.5, 2.5, 0.0, 1.5, 6.0, 8.5, 0.0, 0.0, 8.5, 6.5, 24.5, 145.5, 87.5, 0.0, 0.5, 6.0, 3.0, 0.5, 0.5, 0.0, 0.0, 0.5, 7.5, 0.0, 0.0, 0.0, 0.0, 0.0, 1.5, 4.5, 0.0, 19.0, 18.5, 0.0, 0.0, 0.5, 16.0, 0.0, 0.5, 2.5, 0.5, 71.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 12.5, 4.0, 0.0, 0.0, 0.0, 25.5, 7.0, 0.0, 0.0, 0.0, 0.0, 24.0, 0.5, 0.0, 0.0)

 # RainCountにするために、2倍する
DailyRainCount = DailyPrecip * 2

 # 10分間隔のデータフレームを作成するための空のベクトル
TenMinRainCount <- rep(0, 153 * 24 * 6) # 153日 * 24時間 * 6(10分間隔)

 # 1日ごとの降水量を10分間隔のデータフレームに均等に割り振る
for (i in 1:length(DailyRainCount)) {
  TenMinRainCount[((i - 1) * 24 * 6 + 1):(i * 24 * 6)] <- DailyRainCount[i] / (24 * 6)
}

 # データフレームを作成、スタートは6/1
RainCount_df <- data.frame(
  time = seq.POSIXt(from = as.POSIXct("2000-06-01 00:00"), by = "10 min", length.out = length(TenMinRainCount)),
  RainCount = TenMinRainCount
)

 # Nae2000とRainCount_dfを結合し、RainCount列を置換する
Nae2000 <- Nae2000 %>%
  left_join(RainCount_df, by = c("DateTime" = "time"), suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Nae2000$RainCount, na.rm = TRUE)*0.5

Nae2000 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2000 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2000 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2000 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2000 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 ## AirTemp, 以下の期間を大谷山と置換、2.2℃プラスする
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2000-07-04 00:00", "2000-09-05 23:50")
)

 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2000 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2000 <- Nae2000 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new + 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Nae2000$AirTemp, na.rm = TRUE)

Nae2000 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2000 %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2000 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae2000$DateTime <- format(Nae2000$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae2000, file = "C:/Users/.../Desktop/Nae2000.csv", row.names = FALSE)
Nae2000$DateTime = as.POSIXct(Nae2000$DateTime, format='%Y/%m/%d %H:%M')

2001

 # 機器不調のため、降水量、気温を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae2001_ori <- Nae2001

 ## 3~11月は転倒不良、別途記録計から引用するのがPDFバージョンの補正方法だが、前年の降水量と全く同じ値で奇妙なので、大谷山を引用することにする

 ## RainCount, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2001-03-01 00:00", "2001-11-30 23:50")
)

 # 各日付範囲でデータを置換
 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2001 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2001 <- Nae2001 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Nae2001$RainCount, na.rm = TRUE)*0.5

Nae2001 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2001 %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2001 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2001 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2001 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2001 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2001 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2001 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2001 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 ## AirTemp, 以下の期間を大谷山と置換、2.2℃プラスする
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2001-07-19 00:00", "2001-09-11 23:50")
)

 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2001 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2001 <- Nae2001 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new + 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Nae2001$AirTemp, na.rm = TRUE)

Nae2001 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2001 %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2001 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae2001$DateTime <- format(Nae2001$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae2001, file = "C:/Users/.../Desktop/Nae2001.csv", row.names = FALSE)
Nae2001$DateTime = as.POSIXct(Nae2001$DateTime, format='%Y/%m/%d %H:%M')

2003

 # 機器不調のため、降水量、気温を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # 最初からやり直す
Nae2003 = read.csv("C:/Users/.../desktop/Nae2003.csv", stringsAsFactors = FALSE)

Nae2003$DateTime = as.POSIXct(Nae2003$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae2003_ori <- Nae2003

 ## RainCount, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2003-04-01 00:00", "2003-08-20 23:50")
)

 # 各日付範囲でデータを置換
 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2003 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2003 <- Nae2003 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Nae2003$RainCount, na.rm = TRUE)*0.5

Nae2003 %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2003 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2003 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2003 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2003 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 ## AirTemp, 以下の期間を大谷山と置換、2.2℃プラスする
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2003-03-11 00:00", "2003-03-23 23:50"),
  c("2003-03-30 00:00", "2003-03-30 23:50"),
  c("2003-04-10 00:00", "2003-04-11 23:50"),
  c("2003-05-02 00:00", "2003-05-07 23:50"),
  c("2003-05-21 00:00", "2003-05-24 23:50"),
  c("2003-05-28 00:00", "2003-06-05 23:50"),
  c("2003-06-17 00:00", "2003-07-21 23:50"),
  c("2003-08-05 00:00", "2003-08-10 23:50")
)

 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2003 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2003 <- Nae2003 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new + 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Nae2003$AirTemp, na.rm = TRUE)

Nae2003 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2003 %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2003 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2003 %>% filter(month(DateTime) == 6) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2003 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2003 %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae2003$DateTime <- format(Nae2003$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae2003, file = "C:/Users/.../Desktop/Nae2003.csv", row.names = FALSE)
Nae2003$DateTime = as.POSIXct(Nae2003$DateTime, format='%Y/%m/%d %H:%M')

2004

 # 機器不調のため、降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae2004_ori <- Nae2004

 ## RainCount, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2004-09-15 00:00", "2004-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2004 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2004 <- Nae2004 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)
) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Nae2004$RainCount, na.rm = TRUE)*0.5

Nae2004 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2004 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2004 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2004 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae2004$DateTime <- format(Nae2004$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae2004, file = "C:/Users/.../Desktop/Nae2004.csv", row.names = FALSE)
Nae2004$DateTime = as.POSIXct(Nae2004$DateTime, format='%Y/%m/%d %H:%M')

2005

 # 機器不調のため、気温を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae2005_ori <- Nae2005

 ## AirTemp, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2005-12-30 00:00", "2005-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2005 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2005 <- Nae2005 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new + 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Nae2005$AirTemp, na.rm = TRUE)

Nae2005 %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae2005$DateTime <- format(Nae2005$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae2005, file = "C:/Users/.../Desktop/Nae2005.csv", row.names = FALSE)
Nae2005$DateTime = as.POSIXct(Nae2005$DateTime, format='%Y/%m/%d %H:%M')

2006

 # 機器不調のため、降水量、気温を他観測所から引用
library(dplyr)
library(lubridate)
library(tidyr)

 # 最初からやり直す
Nae2006 = read.csv("C:/Users/.../desktop/Nae2006.csv", stringsAsFactors = FALSE)

Nae2006$DateTime = as.POSIXct(Nae2006$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae2006_ori <- Nae2006

 ## AirTemp, 以下の期間を大谷山と置換、2.2℃プラスする
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2006-01-01 00:00", "2006-01-01 23:50"),
  c("2006-01-05 00:00", "2006-01-06 23:50"),
  c("2006-01-13 00:00", "2006-01-15 23:50"),
  c("2006-03-21 00:00", "2006-03-22 23:50"),
  c("2006-03-27 00:00", "2006-03-28 23:50")
)

 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2006 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2006 <- Nae2006 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new + 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Nae2006$AirTemp, na.rm = TRUE)

Nae2006 %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2006 %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2006 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae2006$DateTime <- format(Nae2006$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae2006, file = "C:/Users/.../Desktop/Nae2006.csv", row.names = FALSE)
Nae2006$DateTime = as.POSIXct(Nae2006$DateTime, format='%Y/%m/%d %H:%M')

2009

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae2009_ori <- Nae2009

 ## AirTemp, RainCount, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2009-06-23 00:00", "2009-06-30 23:50")
)

 # 各日付範囲でデータを置換
 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2009 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2009 <- Nae2009 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new + 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Nae2009$AirTemp, na.rm = TRUE)

Nae2009 %>% filter(month(DateTime) == 6) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Nae2009$RainCount, na.rm = TRUE)*0.5

Nae2009 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae2009$DateTime <- format(Nae2009$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae2009, file = "C:/Users/.../Desktop/Nae2009.csv", row.names = FALSE)
Nae2009$DateTime = as.POSIXct(Nae2009$DateTime, format='%Y/%m/%d %H:%M')

2014

 # 機器不調のため、降水量、気温を他観測所から引用
library(dplyr)
library(lubridate)

 # 最初からやり直す
Nae2014 = read.csv("C:/Users/.../desktop/Nae2014.csv", stringsAsFactors = FALSE)

Nae2014$DateTime = as.POSIXct(Nae2014$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae2014_ori <- Nae2014

 ## AirTemp, 以下の期間を大谷山と置換、2.2℃プラスする
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2014-03-28 00:00", "2014-05-01 23:50"),
  c("2014-09-28 00:00", "2014-09-30 23:50"),
  c("2014-10-03 00:00", "2014-10-03 23:50"),
  c("2014-10-07 00:00", "2014-10-08 23:50"),
  c("2014-10-10 00:00", "2014-10-11 23:50"),
  c("2014-10-14 00:00", "2014-10-14 23:50"),
  c("2014-10-16 00:00", "2014-12-01 23:50"),
  c("2014-12-29 00:00", "2014-12-31 23:50")
)

 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2014 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2014 <- Nae2014 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new + 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 ## RainCount, 以下の期間を大谷山と置換する
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2014-03-28 00:00", "2014-05-01 23:50"),
  c("2014-12-29 00:00", "2014-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2014 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2014 <- Nae2014 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Nae2014$AirTemp, na.rm = TRUE)

Nae2014 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2014 %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2014 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2014 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2014 %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2014 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2014 %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Nae2014$RainCount, na.rm = TRUE)*0.5

Nae2014 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2014 %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2014 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2014 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae2014$DateTime <- format(Nae2014$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae2014, file = "C:/Users/.../Desktop/Nae2014.csv", row.names = FALSE)
Nae2014$DateTime = as.POSIXct(Nae2014$DateTime, format='%Y/%m/%d %H:%M')

2015

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # 最初からやり直す
Nae2015 = read.csv("C:/Users/.../desktop/Nae2015.csv", stringsAsFactors = FALSE)

Nae2015$DateTime = as.POSIXct(Nae2015$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae2015_ori <- Nae2015

 ## AirTemp, RainCount, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2015-01-01 00:00", "2015-01-05 23:50"),
  c("2015-02-23 00:00", "2015-02-23 23:50"),
  c("2015-02-26 00:00", "2015-03-02 23:50")
)

 # 各日付範囲でデータを置換
 # OyaXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2015 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2015 <- Nae2015 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new + 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Nae2015$AirTemp, na.rm = TRUE)

Nae2015 %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2015 %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2015 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Nae2015 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Nae2015$RainCount, na.rm = TRUE)*0.5

Nae2015 %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2015 %>% filter(month(DateTime) == 2) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2015 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2015 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae2015$DateTime <- format(Nae2015$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae2015, file = "C:/Users/.../Desktop/Nae2015.csv", row.names = FALSE)
Nae2015$DateTime = as.POSIXct(Nae2015$DateTime, format='%Y/%m/%d %H:%M')

2016

 # 機器不調のため、降水量を他観測所から引用、8/27~9/26は全部の気象観測所のデータが欠測なので、欠測
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをNaeXXXX_oriに待避
Nae2016_ori <- Nae2016

 ## RainCount, 以下の期間を大谷山と置換する
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2016-07-01 00:00", "2016-08-26 23:50")
)

 # 各日付範囲でデータを置換
 # Oya20XXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Oya2016 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # NaeXXXXの該当期間のデータを置換
Nae2016 <- Nae2016 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Nae2016$RainCount, na.rm = TRUE)*0.5

Nae2016 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2016 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Nae2016 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # NaeXXXXをデスクトップにcsvファイルとして保存
Nae2016$DateTime <- format(Nae2016$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Nae2016, file = "C:/Users/.../Desktop/Nae2016.csv", row.names = FALSE)
Nae2016$DateTime = as.POSIXct(Nae2016$DateTime, format='%Y/%m/%d %H:%M')

ホームページに戻る

大谷山

1997

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをOyaXXXX_oriに待避
Oya1997_ori <- Oya1997

 ## AirTemp, 以下の期間を大谷山-2.2して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1997-09-08 00:00", "1997-10-01 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae1997 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya1997 <- Oya1997 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new - 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 ## RainCount, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1997-06-01 00:00", "1997-10-01 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae1997 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya1997 <- Oya1997 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Oya1997$AirTemp, na.rm = TRUE)

Oya1997 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya1997 %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Oya1997$RainCount, na.rm = TRUE)*0.5

Oya1997 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya1997 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya1997 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya1997 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya1997 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # OyaXXXXをデスクトップにcsvファイルとして保存
Oya1997$DateTime <- format(Oya1997$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Oya1997, file = "C:/Users/.../Desktop/Oya1997.csv", row.names = FALSE)
Oya1997$DateTime = as.POSIXct(Oya1997$DateTime, format='%Y/%m/%d %H:%M')

1998

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをOyaXXXX_oriに待避
Oya1998_ori <- Oya1998

 ## AirTemp, 以下の期間を大谷山-2.2して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1998-07-03 00:00", "1998-12-11 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae1998 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya1998 <- Oya1998 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new - 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 ## RainCount, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1998-06-01 00:00", "1998-12-11 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae1998 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya1998 <- Oya1998 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Oya1998$AirTemp, na.rm = TRUE)

Oya1998 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya1998 %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya1998 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya1998 %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya1998 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya1998 %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Oya1998$RainCount, na.rm = TRUE)*0.5

Oya1998 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya1998 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya1998 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya1998 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya1998 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya1998 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya1998 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # OyaXXXXをデスクトップにcsvファイルとして保存
Oya1998$DateTime <- format(Oya1998$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Oya1998, file = "C:/Users/.../Desktop/Oya1998.csv", row.names = FALSE)
Oya1998$DateTime = as.POSIXct(Oya1998$DateTime, format='%Y/%m/%d %H:%M')

2000

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをOyaXXXX_oriに待避
Oya2000_ori <- Oya2000

 ## AirTemp, 以下の期間を大谷山-2.2して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2000-11-22 00:00", "2000-11-23 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae2000 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya2000 <- Oya2000 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new - 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 ## RainCount, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2000-09-01 00:00", "2000-11-23 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae2000 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya2000 <- Oya2000 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Oya2000$AirTemp, na.rm = TRUE)

Oya2000 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Oya2000$RainCount, na.rm = TRUE)*0.5

Oya2000 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya2000 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya2000 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # OyaXXXXをデスクトップにcsvファイルとして保存
Oya2000$DateTime <- format(Oya2000$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Oya2000, file = "C:/Users/.../Desktop/Oya2000.csv", row.names = FALSE)
Oya2000$DateTime = as.POSIXct(Oya2000$DateTime, format='%Y/%m/%d %H:%M')

2003

 # 機器不調のため、気温を他観測所から引用
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをOyaXXXX_oriに待避
Oya2003_ori <- Oya2003

 ## AirTemp, 以下の期間を大谷山-2.2して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2003-09-20 00:00", "2003-11-18 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae2003 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya2003 <- Oya2003 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new - 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Oya2003$AirTemp, na.rm = TRUE)

Oya2003 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2003 %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2003 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # OyaXXXXをデスクトップにcsvファイルとして保存
Oya2003$DateTime <- format(Oya2003$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Oya2003, file = "C:/Users/.../Desktop/Oya2003.csv", row.names = FALSE)
Oya2003$DateTime = as.POSIXct(Oya2003$DateTime, format='%Y/%m/%d %H:%M')

2006

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをOyaXXXX_oriに待避
Oya2006_ori <- Oya2006

 ## AirTemp, RainCount, 以下の期間を苗畑と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2006-07-13 00:00", "2006-07-15 23:50"),
  c("2006-11-01 00:00", "2006-11-02 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae2006 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya2006 <- Oya2006 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new - 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Oya2006$AirTemp, na.rm = TRUE)

Oya2006 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2006 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Oya2006$RainCount, na.rm = TRUE)*0.5

Oya2006 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya2006 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # OyaXXXXをデスクトップにcsvファイルとして保存
Oya2006$DateTime <- format(Oya2006$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Oya2006, file = "C:/Users/.../Desktop/Oya2006.csv", row.names = FALSE)
Oya2006$DateTime = as.POSIXct(Oya2006$DateTime, format='%Y/%m/%d %H:%M')

2008

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをOyaXXXX_oriに待避
Oya2008_ori <- Oya2008

 ## AirTemp, RainCount, 以下の期間を苗畑と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2008-09-17 00:00", "2008-09-25 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae2008 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya2008 <- Oya2008 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new - 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Oya2008$AirTemp, na.rm = TRUE)

Oya2008 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Oya2008$RainCount, na.rm = TRUE)*0.5

Oya2008 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # OyaXXXXをデスクトップにcsvファイルとして保存
Oya2008$DateTime <- format(Oya2008$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Oya2008, file = "C:/Users/.../Desktop/Oya2008.csv", row.names = FALSE)
Oya2008$DateTime = as.POSIXct(Oya2008$DateTime, format='%Y/%m/%d %H:%M')

2009

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをOyaXXXX_oriに待避
Oya2009_ori <- Oya2009

 ## AirTemp, RainCount, 以下の期間を苗畑と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2009-03-04 00:00", "2009-05-11 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae2009 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya2009 <- Oya2009 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new - 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Oya2009$AirTemp, na.rm = TRUE)

Oya2009 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2009 %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2009 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Oya2009$RainCount, na.rm = TRUE)*0.5

Oya2009 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya2009 %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya2009 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # OyaXXXXをデスクトップにcsvファイルとして保存
Oya2009$DateTime <- format(Oya2009$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Oya2009, file = "C:/Users/.../Desktop/Oya2009.csv", row.names = FALSE)
Oya2009$DateTime = as.POSIXct(Oya2009$DateTime, format='%Y/%m/%d %H:%M')

2015

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # 最初からやり直す
Oya2015 = read.csv("C:/Users/.../desktop/Oya2015.csv", stringsAsFactors = FALSE)

Oya2015$DateTime = as.POSIXct(Oya2015$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをOyaXXXX_oriに待避
Oya2015_ori <- Oya2015

 ## AirTemp, RainCount, 以下の期間を苗畑と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2015-03-31 00:00", "2015-05-28 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae2015 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya2015 <- Oya2015 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new - 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Oya2015$AirTemp, na.rm = TRUE)

Oya2015 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2015 %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2015 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Oya2015$RainCount, na.rm = TRUE)*0.5

Oya2015 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya2015 %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya2015 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # OyaXXXXをデスクトップにcsvファイルとして保存
Oya2015$DateTime <- format(Oya2015$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Oya2015, file = "C:/Users/.../Desktop/Oya2015.csv", row.names = FALSE)
Oya2015$DateTime = as.POSIXct(Oya2015$DateTime, format='%Y/%m/%d %H:%M')

2016

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをOyaXXXX_oriに待避
Oya2016_ori <- Oya2016

 ## AirTemp, 以下の期間を大谷山-2.2して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2016-05-25 00:00", "2016-06-24 23:50"),
  c("2016-10-09 00:00", "2016-12-27 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae2016 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya2016 <- Oya2016 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new - 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 ## RainCount, 以下の期間を大谷山と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2016-10-09 00:00", "2016-12-27 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae2016 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya2016 <- Oya2016 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Oya2016$AirTemp, na.rm = TRUE)

Oya2016 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2016 %>% filter(month(DateTime) == 6) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2016 %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2016 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2016 %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Oya2016$RainCount, na.rm = TRUE)*0.5

Oya2016 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya2016 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya2016 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # OyaXXXXをデスクトップにcsvファイルとして保存
Oya2016$DateTime <- format(Oya2016$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Oya2016, file = "C:/Users/.../Desktop/Oya2016.csv", row.names = FALSE)
Oya2016$DateTime = as.POSIXct(Oya2016$DateTime, format='%Y/%m/%d %H:%M')

2017

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # オリジナルのデータフレームをOyaXXXX_oriに待避
Oya2017_ori <- Oya2017

 ## AirTemp, RainCount, 以下の期間を苗畑と置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2017-08-28 00:00", "2017-09-04 23:50"),
  c("2017-09-17 00:00", "2017-09-25 23:50")
)

 # 各日付範囲でデータを置換
 # NaeXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Nae2017 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # OyaXXXXの該当期間のデータを置換
Oya2017 <- Oya2017 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new - 2.2, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Oya2017$AirTemp, na.rm = TRUE)

Oya2017 %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Oya2017 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Oya2017$RainCount, na.rm = TRUE)*0.5

Oya2017 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Oya2017 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # OyaXXXXをデスクトップにcsvファイルとして保存
Oya2017$DateTime <- format(Oya2017$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Oya2017, file = "C:/Users/.../Desktop/Oya2017.csv", row.names = FALSE)
Oya2017$DateTime = as.POSIXct(Oya2017$DateTime, format='%Y/%m/%d %H:%M')

ホームページに戻る

唐沢山

1997

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # アメダス佐野のデータ読み込み
Sano1997 = read.csv("C:/Users/.../desktop/Sano1997.csv", stringsAsFactors = FALSE)

Sano1997$DateTime = as.POSIXct(Sano1997$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara1997_ori <- Kara1997

 ## AirTemp, 以下の期間をアメダス*0.97+0.24して置換, RainCount, 以下の期間を=アメダスとして置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1997-07-22 00:00", "1997-08-04 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano1997 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara1997 <- Kara1997 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new")) %>%
  select(-c(Date, Time, Rain))


 # 結果の確認
mean(Kara1997$AirTemp, na.rm = TRUE)

Kara1997 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara1997 %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara1997$RainCount, na.rm = TRUE)*0.5

Kara1997 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara1997 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara1997$DateTime <- format(Kara1997$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara1997, file = "C:/Users/.../Desktop/Kara1997.csv", row.names = FALSE)
Kara1997$DateTime = as.POSIXct(Kara1997$DateTime, format='%Y/%m/%d %H:%M')

1998

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)

 # アメダス佐野のデータ読み込み
Sano1998 = read.csv("C:/Users/.../desktop/Sano1998.csv", stringsAsFactors = FALSE)

Sano1998$DateTime = as.POSIXct(Sano1998$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara1998_ori <- Kara1998

 ## RainCount, 以下の期間を=アメダスとして置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1998-05-19 00:00", "1998-06-23 23:50"),
  c("1998-11-06 00:00", "1998-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano1998 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara1998 <- Kara1998 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 ## AirTemp, 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1998-11-06 00:00", "1998-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano1998 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara1998 <- Kara1998 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara1998$AirTemp, na.rm = TRUE)

Kara1998 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara1998 %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara1998$RainCount, na.rm = TRUE)*0.5

Kara1998 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara1998 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara1998 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara1998 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara1998$DateTime <- format(Kara1998$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara1998, file = "C:/Users/.../Desktop/Kara1998.csv", row.names = FALSE)
Kara1998$DateTime = as.POSIXct(Kara1998$DateTime, format='%Y/%m/%d %H:%M')

1999

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 10月4日から31日までのデータを取得
for (day in 4:31) {
  url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=1999&month=10&day=", day, "&view=p1")
  page <- read_html(url)

  # テーブルの抽出
  table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)

  # 列名の修正
  colnames(table) <- make.unique(colnames(table))

  # 日付列の追加
  table <- table %>% mutate(Date = ymd(paste0("1999-10-", sprintf("%02d", day))))

  # データをリストに追加
  data_list[[day - 3]] <- table
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano1999.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する



 # アメダス佐野のデータ読み込み
Sano1999 = read.csv("C:/Users/.../desktop/Sano1999.csv", stringsAsFactors = FALSE)

Sano1999$DateTime = as.POSIXct(Sano1999$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara1999_ori <- Kara1999

 ## RainCount, 以下の期間を=アメダスとして置換, AirTemp, 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1999-10-05 00:00", "1999-10-31 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano1999 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara1999 <- Kara1999 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara1999$AirTemp, na.rm = TRUE)

Kara1999 %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara1999$RainCount, na.rm = TRUE)*0.5

Kara1999 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara1999$DateTime <- format(Kara1999$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara1999, file = "C:/Users/.../Desktop/Kara1999.csv", row.names = FALSE)
Kara1999$DateTime = as.POSIXct(Kara1999$DateTime, format='%Y/%m/%d %H:%M')

2000

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 3月1日から19日までのデータを取得
for (day in 1:19) {
  url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2000&month=03&day=", day, "&view=p1")
  page <- read_html(url, encoding = "UTF-8")

  # テーブルの抽出
  table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)

  # 列名の修正
  colnames(table) <- make.unique(colnames(table))

  # 日付列の追加
  table <- table %>% mutate(Date = ymd(paste0("2000-03-", sprintf("%02d", day))))

  # データをリストに追加
  data_list[[day]] <- table
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2000.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する



 # アメダス佐野のデータ読み込み
Sano2000 = read.csv("C:/Users/.../desktop/Sano2000.csv", stringsAsFactors = FALSE)

Sano2000$DateTime = as.POSIXct(Sano2000$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2000_ori <- Kara2000

 ## RainCount, 以下の期間を=アメダスとして置換, AirTemp, 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2000-03-02 00:00", "2000-03-19 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2000 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2000 <- Kara2000 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2000$AirTemp, na.rm = TRUE)

Kara2000 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara2000$RainCount, na.rm = TRUE)*0.5

Kara2000 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2000$DateTime <- format(Kara2000$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2000, file = "C:/Users/.../Desktop/Kara2000.csv", row.names = FALSE)
Kara2000$DateTime = as.POSIXct(Kara2000$DateTime, format='%Y/%m/%d %H:%M')

2001

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 4月7日から29日までのデータを取得
for (day in 7:29) {
  url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2001&month=04&day=", day, "&view=p1")
  page <- read_html(url, encoding = "UTF-8")

  # テーブルの抽出
  table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)

  # 列名の修正
  colnames(table) <- make.unique(colnames(table))

  # 日付列の追加
  table <- table %>% mutate(Date = ymd(paste0("2001-04-", sprintf("%02d", day))))

  # データをリストに追加
  data_list[[day]] <- table
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2001_1.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する



 # アメダス佐野のデータ読み込み
Sano2001 = read.csv("C:/Users/.../desktop/Sano2001.csv", stringsAsFactors = FALSE)

Sano2001$DateTime = as.POSIXct(Sano2001$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2001_ori <- Kara2001

 ## AirTemp, 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2001-04-08 00:00", "2001-04-29 23:50"),
  c("2001-05-21 00:00", "2001-05-21 23:50"),
  c("2001-05-28 00:00", "2001-06-25 23:50"),
  c("2001-07-06 00:00", "2001-07-13 23:50"),
  c("2001-07-16 00:00", "2001-07-17 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2001 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2001 <- Kara2001 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2001$AirTemp, na.rm = TRUE)

Kara2001 %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2001 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2001 %>% filter(month(DateTime) == 6) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2001 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2001$DateTime <- format(Kara2001$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2001, file = "C:/Users/.../Desktop/Kara2001.csv", row.names = FALSE)
Kara2001$DateTime = as.POSIXct(Kara2001$DateTime, format='%Y/%m/%d %H:%M')

2002

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 1ヶ月ごとにデータを取得
for (day in 7:29) {
  url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2002&month=05&day=", day, "&view=p1")
  page <- read_html(url, encoding = "UTF-8")

  # テーブルの抽出
  table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)

  # 列名の修正
  colnames(table) <- make.unique(colnames(table))

  # 日付列の追加
  table <- table %>% mutate(Date = ymd(paste0("2002-05-", sprintf("%02d", day))))

  # データをリストに追加
  data_list[[day]] <- table
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2002_2.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する



 # アメダス佐野のデータ読み込み
Sano2002 = read.csv("C:/Users/.../desktop/Sano2002.csv", stringsAsFactors = FALSE)

Sano2002$DateTime = as.POSIXct(Sano2002$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2002_ori <- Kara2002

 ## AirTemp, 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2002-02-01 00:00", "2002-02-15 23:50"),
  c("2002-02-22 00:00", "2002-02-27 23:50"),
  c("2002-05-08 00:00", "2002-05-29 23:50"),
  c("2002-07-11 00:00", "2002-07-11 23:50"),
  c("2002-07-17 00:00", "2002-08-07 23:50"),
  c("2002-09-17 00:00", "2002-11-04 23:50"),
  c("2002-11-11 00:00", "2002-11-12 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2002 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2002 <- Kara2002 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2002$AirTemp, na.rm = TRUE)

Kara2002 %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2002 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2002 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2002 %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2002 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2002 %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2002 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2002$DateTime <- format(Kara2002$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2002, file = "C:/Users/.../Desktop/Kara2002.csv", row.names = FALSE)
Kara2002$DateTime = as.POSIXct(Kara2002$DateTime, format='%Y/%m/%d %H:%M')

2003

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト(ここから)
data_list <- list()

 # 1ヶ月ごとにデータを取得
for (day in 16:17) {
  url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2003&month=09&day=", day, "&view=p1")
  page <- read_html(url, encoding = "UTF-8")

  # テーブルの抽出
  table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)

  # 列名の修正
  colnames(table) <- make.unique(colnames(table))

  # 日付列の追加
  table <- table %>% mutate(Date = ymd(paste0("2003-09-", sprintf("%02d", day))))

  # データをリストに追加
  data_list[[day]] <- table
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2003_4.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する



 # アメダス佐野のデータ読み込み
Sano2003 = read.csv("C:/Users/.../desktop/Sano2003.csv", stringsAsFactors = FALSE)

Sano2003$DateTime = as.POSIXct(Sano2003$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2003_ori <- Kara2003

 ## AirTemp, 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2003-02-22 00:00", "2003-02-22 23:50"),
  c("2003-02-28 00:00", "2003-03-09 23:50"),
  c("2003-03-11 00:00", "2003-03-21 23:50"),
  c("2003-08-03 00:00", "2003-08-23 23:50"),
  c("2003-09-17 00:00", "2003-09-17 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2003 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2003 <- Kara2003 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2003$AirTemp, na.rm = TRUE)

Kara2003 %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2003 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2003 %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2003 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2003$DateTime <- format(Kara2003$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2003, file = "C:/Users/.../Desktop/Kara2003.csv", row.names = FALSE)
Kara2003$DateTime = as.POSIXct(Kara2003$DateTime, format='%Y/%m/%d %H:%M')

2004

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト(ここから)
data_list <- list()

 # 1ヶ月ごとにデータを取得
for (day in 1:10) {
  url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2004&month=11&day=", day, "&view=p1")
  page <- read_html(url, encoding = "UTF-8")

  # テーブルの抽出
  table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)

  # 列名の修正
  colnames(table) <- make.unique(colnames(table))

  # 日付列の追加
  table <- table %>% mutate(Date = ymd(paste0("2004-11-", sprintf("%02d", day))))

  # データをリストに追加
  data_list[[day]] <- table
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2004_7.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する



 # アメダス佐野のデータ読み込み
Sano2004 = read.csv("C:/Users/.../desktop/Sano2004.csv", stringsAsFactors = FALSE)

Sano2004$DateTime = as.POSIXct(Sano2004$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2004_ori <- Kara2004

 ## AirTemp, 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2004-02-27 00:00", "2004-03-05 23:50"),
  c("2004-03-09 00:00", "2004-04-25 23:50"),
  c("2004-04-29 00:00", "2004-05-06 23:50"),
  c("2004-05-17 00:00", "2004-05-25 23:50"),
  c("2004-05-26 00:00", "2004-05-27 23:50"),
  c("2004-10-13 00:00", "2004-11-10 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2004 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2004 <- Kara2004 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 ## RainCount, 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2004-05-01 00:00", "2004-06-30 23:50"),
  c("2004-10-13 00:00", "2004-11-10 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2004 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2004 <- Kara2004 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2004$AirTemp, na.rm = TRUE)

Kara2004 %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2004 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2004 %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2004 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2004 %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2004 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara2004$RainCount, na.rm = TRUE)*0.5

Kara2004 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2004 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2004 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2004 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
 ## write.csv(Kara2004, file = "C:/Users/.../Desktop/Kara2004.csv", row.names = FALSE)
Kara2004$DateTime <- format(Kara2004$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2004, file = "C:/Users/.../Desktop/Kara2004.csv", row.names = FALSE)
Kara2004$DateTime = as.POSIXct(Kara2004$DateTime, format='%Y/%m/%d %H:%M')

2005

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 5月9日から12月31日までのデータを取得
for (month in 5:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 5 && day < 9) || (month == 6 && day > 30) || (month == 9 && day > 30) || (month == 11 && day > 30)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2005&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("2005-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2005.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する



 # アメダス佐野のデータ読み込み
Sano2005 = read.csv("C:/Users/.../desktop/Sano2005.csv", stringsAsFactors = FALSE)

Sano2005$DateTime = as.POSIXct(Sano2005$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2005_ori <- Kara2005

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2005-05-09 00:00", "2005-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2005 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2005 <- Kara2005 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2005$AirTemp, na.rm = TRUE)

Kara2005 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2005 %>% filter(month(DateTime) == 6) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2005 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2005 %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2005 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2005 %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2005 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2005 %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara2005$RainCount, na.rm = TRUE)*0.5

Kara2005 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2005 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2005 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2005 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2005 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2005 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2005 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2005 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2005$DateTime <- format(Kara2005$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2005, file = "C:/Users/.../Desktop/Kara2005.csv", row.names = FALSE)
Kara2005$DateTime = as.POSIXct(Kara2005$DateTime, format='%Y/%m/%d %H:%M')

2006

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 1月1日から4月25日までのデータを取得
for (month in 1:4) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 2 && day > 28) || (month == 4 && day > 25)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2006&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("2006-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2006.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する


 # アメダス佐野のデータ読み込み
Sano2006 = read.csv("C:/Users/.../desktop/Sano2006.csv", stringsAsFactors = FALSE)

Sano2006$DateTime = as.POSIXct(Sano2006$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2006_ori <- Kara2006

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2006-01-01 00:00", "2006-04-25 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2006 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2006 <- Kara2006 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2006$AirTemp, na.rm = TRUE)

Kara2006 %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2006 %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2006 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2006 %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara2006$RainCount, na.rm = TRUE)*0.5

Kara2006 %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2006 %>% filter(month(DateTime) == 2) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2006 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2006 %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2006$DateTime <- format(Kara2006$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2006, file = "C:/Users/.../Desktop/Kara2006.csv", row.names = FALSE)
Kara2006$DateTime = as.POSIXct(Kara2006$DateTime, format='%Y/%m/%d %H:%M')

2007

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト(ここから)
data_list <- list()

 # 1ヶ月ごとにデータを取得
for (day in 4:6) {
  url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2007&month=7&day=", day, "&view=p1")
  page <- read_html(url, encoding = "UTF-8")

  # テーブルの抽出
  table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)

  # 列名の修正
  colnames(table) <- make.unique(colnames(table))

  # 日付列の追加
  table <- table %>% mutate(Date = ymd(paste0("2007-7-", sprintf("%02d", day))))

  # データをリストに追加
  data_list[[day]] <- table
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2007.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する、先頭行に0:00のデータを付け加えること


 # アメダス佐野のデータ読み込み
Sano2007 = read.csv("C:/Users/.../desktop/Sano2007.csv", stringsAsFactors = FALSE)

Sano2007$DateTime = as.POSIXct(Sano2007$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2007_ori <- Kara2007

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2007-07-04 00:00", "2007-07-06 23:50"))

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2007 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2007 <- Kara2007 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2007$AirTemp, na.rm = TRUE)

Kara2007 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara2007$RainCount, na.rm = TRUE)*0.5

Kara2007 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2007$DateTime <- format(Kara2007$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2007, file = "C:/Users/.../Desktop/Kara2007.csv", row.names = FALSE)
Kara2007$DateTime = as.POSIXct(Kara2007$DateTime, format='%Y/%m/%d %H:%M')

2008

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 10月27日から12月31日までのデータを取得
for (month in 10:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 10 && day < 27) || (month == 11 && day > 30)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2008&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("2008-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2008.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する、先頭に0:00を追加すること


 # アメダス佐野のデータ読み込み
Sano2008 = read.csv("C:/Users/.../desktop/Sano2008.csv", stringsAsFactors = FALSE)

Sano2008$DateTime = as.POSIXct(Sano2008$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2008_ori <- Kara2008

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2008-10-27 00:00", "2008-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2008 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2008 <- Kara2008 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2008$AirTemp, na.rm = TRUE)

Kara2008 %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2008 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2008 %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara2008$RainCount, na.rm = TRUE)*0.5

Kara2008 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2008 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2008 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2008$DateTime <- format(Kara2008$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2008, file = "C:/Users/.../Desktop/Kara2008.csv", row.names = FALSE)
Kara2008$DateTime = as.POSIXct(Kara2008$DateTime, format='%Y/%m/%d %H:%M')

2009

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 1月から3月、および12月までのデータを取得
for (month in c(1:3, 12)) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day > 5) || (month == 2 && day > 28 ) || (month == 3 && day > 9) || (month == 12 && day > 8)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2009&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("2009-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2009.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する、先頭に0:00を追加すること


 # アメダス佐野のデータ読み込み
Sano2009 = read.csv("C:/Users/.../desktop/Sano2009.csv", stringsAsFactors = FALSE)

Sano2009$DateTime = as.POSIXct(Sano2009$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2009_ori <- Kara2009

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2009-01-01 00:00", "2009-01-05 23:50"),
  c("2009-02-14 00:00", "2009-03-09 23:50"),
  c("2009-12-04 00:00", "2009-12-08 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2009 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2009 <- Kara2009 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2009$AirTemp, na.rm = TRUE)

Kara2009 %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2009 %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2009 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2009 %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara2009$RainCount, na.rm = TRUE)*0.5

Kara2009 %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2009 %>% filter(month(DateTime) == 2) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2009 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2009 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2009$DateTime <- format(Kara2009$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2009, file = "C:/Users/.../Desktop/Kara2009.csv", row.names = FALSE)
Kara2009$DateTime = as.POSIXct(Kara2009$DateTime, format='%Y/%m/%d %H:%M')

2011

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## データの読み直し
Kara2011 = read.csv("C:/Users/.../desktop/Kara2011.csv", stringsAsFactors = FALSE)

Kara2011$DateTime = as.POSIXct(Kara2011$DateTime, format='%Y/%m/%d %H:%M')

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 6月から9月までのデータを取得
for (month in 5:9) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 5 && day < 31) || (month == 6 && day > 30 ) || (month == 9 && day > 1)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2011&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("2011-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2011.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する、先頭に0:00を追加すること


 # アメダス佐野のデータ読み込み
Sano2011 = read.csv("C:/Users/.../desktop/Sano2011.csv", stringsAsFactors = FALSE)

Sano2011$DateTime = as.POSIXct(Sano2011$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2011_ori <- Kara2011

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2011-06-01 00:00", "2011-09-01 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2011 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2011 <- Kara2011 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Kara2011$RainCount, na.rm = TRUE)*0.5

Kara2011 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2011 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2011 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2011 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2011$DateTime <- format(Kara2011$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2011, file = "C:/Users/.../Desktop/Kara2011.csv", row.names = FALSE)
Kara2011$DateTime = as.POSIXct(Kara2011$DateTime, format='%Y/%m/%d %H:%M')

2013

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 3月31日から12月31日までのデータを取得
for (month in 3:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 3 && day < 31) || (month == 4 && day > 30 ) || (month == 6 && day > 30) || (month == 9 && day > 30) || (month == 11 && day > 30)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2013&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("2013-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2013.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する、先頭に0:00を追加すること


 # アメダス佐野のデータ読み込み
Sano2013 = read.csv("C:/Users/.../desktop/Sano2013.csv", stringsAsFactors = FALSE)

Sano2013$DateTime = as.POSIXct(Sano2013$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2013_ori <- Kara2013

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2013-04-01 00:00", "2013-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2013 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2013 <- Kara2013 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Kara2013$RainCount, na.rm = TRUE)*0.5

Kara2013 %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2013 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2013 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2013 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2013 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2013 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2013 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2013 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2013 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2013$DateTime <- format(Kara2013$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2013, file = "C:/Users/.../Desktop/Kara2013.csv", row.names = FALSE)
Kara2013$DateTime = as.POSIXct(Kara2013$DateTime, format='%Y/%m/%d %H:%M')

2014

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## データの読み直し
Kara2014 = read.csv("C:/Users/.../desktop/Kara2014.csv", stringsAsFactors = FALSE)

Kara2014$DateTime = as.POSIXct(Kara2014$DateTime, format='%Y/%m/%d %H:%M')

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 3月16日から12月5日までのデータを取得
for (month in c(3:5, 10:12)) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 3 && day < 16) || (month == 4 && day > 30 ) || (month == 5 && day > 2 ) || (month == 10 && day < 31) || (month == 11 && day > 30) || (month == 12 && day > 5)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2014&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("2014-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2014.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する、先頭に0:00を追加すること


 # アメダス佐野のデータ読み込み
Sano2014 = read.csv("C:/Users/.../desktop/Sano2014.csv", stringsAsFactors = FALSE)

Sano2014$DateTime = as.POSIXct(Sano2014$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2014_ori <- Kara2014

 ## AirTemp: 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2014-03-17 00:00", "2014-03-18 23:50"),
  c("2014-03-24 00:00", "2014-05-02 23:50"),
  c("2014-11-01 00:00", "2014-12-05 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2014 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2014 <- Kara2014 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2014-03-24 00:00", "2014-05-02 23:50"),
  c("2014-11-01 00:00", "2014-12-05 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2014 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2014 <- Kara2014 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2014$AirTemp, na.rm = TRUE)

Kara2014 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2014 %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2014 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2014 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2014 %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara2014$RainCount, na.rm = TRUE)*0.5

Kara2014 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2014 %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2014 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2014 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2014 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2014$DateTime <- format(Kara2014$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2014, file = "C:/Users/.../Desktop/Kara2014.csv", row.names = FALSE)
Kara2014$DateTime = as.POSIXct(Kara2014$DateTime, format='%Y/%m/%d %H:%M')

2015

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## データの読み直し
Kara2015 = read.csv("C:/Users/.../desktop/Kara2015.csv", stringsAsFactors = FALSE)

Kara2015$DateTime = as.POSIXct(Kara2015$DateTime, format='%Y/%m/%d %H:%M')

 ## ウェブスクレイピングでアメダスデータを取得する
 # データを格納するリスト
data_list <- list()

 # 1月1日から9月3日までのデータを取得
for (month in 1:9) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 2 && day > 28) || (month == 4 && day > 30 ) || (month == 6 && day > 30 ) || (month == 9 && day > 3)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=41&block_no=1018&year=2015&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("2015-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Sano2015.csv", row.names = FALSE)

 ## Amedas_SanoXXXXを整形してSanoXXXXを作成する、先頭に0:00を追加すること


 # アメダス佐野のデータ読み込み
Sano2015 = read.csv("C:/Users/.../desktop/Sano2015.csv", stringsAsFactors = FALSE)

Sano2015$DateTime = as.POSIXct(Sano2015$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをKaraXXXX_oriに待避
Kara2015_ori <- Kara2015

 ## AirTemp: 以下の期間をアメダス*0.97+0.24して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2015-02-08 00:00", "2015-02-27 23:50"),
  c("2015-04-06 00:00", "2015-07-02 23:50"),
  c("2015-08-20 00:00", "2015-09-03 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2015 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2015 <- Kara2015 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.94 + 0.24, AirTemp)) %>%
  select(-ends_with(".new"))

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2015-01-01 00:00", "2015-09-03 23:50")
)

 # 各日付範囲でデータを置換
 # SanoXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Sano2015 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # KaraXXXXの該当期間のデータを置換
Kara2015 <- Kara2015 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
mean(Kara2015$AirTemp, na.rm = TRUE)

Kara2015 %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2015 %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2015 %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2015 %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2015 %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2015 %>% filter(month(DateTime) == 6) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2015 %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2015 %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Kara2015 %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

sum(Kara2015$RainCount, na.rm = TRUE)*0.5

Kara2015 %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2015 %>% filter(month(DateTime) == 2) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2015 %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2015 %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2015 %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2015 %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2015 %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2015 %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Kara2015 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # KaraXXXXをデスクトップにcsvファイルとして保存
Kara2015$DateTime <- format(Kara2015$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Kara2015, file = "C:/Users/.../Desktop/Kara2015.csv", row.names = FALSE)
Kara2015$DateTime = as.POSIXct(Kara2015$DateTime, format='%Y/%m/%d %H:%M')

ホームページに戻る

秩父

1997

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 1月6日から2月5日までのデータを取得(秩父、1時間ごと)
 # データを格納するリスト
data_list <- list()

for (month in 1:2) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day < 6) || (month == 2 && day > 5 )) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/hourly_s1.php?prec_no=43&block_no=47641&year=1997&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("1997-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # ヘッダー行を削除
data <- data[-1, ]

 # 時間列を数値型に変換
data$<- as.numeric(data$時)

 # NAの行を削除
data <- data %>% filter(!is.na(時))

 # 時間列をdatetime型に変換
data$Time <- ymd_hms(paste0(data$Date, " ", sprintf("%02d", data$時), ":00:00"))

 # 10分間隔の時間列を作成
time_range <- seq(from = min(data$Time, na.rm = TRUE), to = max(data$Time, na.rm = TRUE) + hours(1), by = "10 mins")

 # 新しいデータフレームを作成
new_data <- data.frame(Time = time_range)

 # 気温データを1時間ごとにコピーして10分間隔に引き延ばす
new_data <- new_data %>%
  mutate(Temperature = sapply(Time, function(x) {
    datetime_data <- data %>% filter(Date == date(x) & hour(Time) == hour(x))
    if (nrow(datetime_data) > 0) {
      return(datetime_data$`気温(℃)`[1])
    } else {
      return(NA)
    }
  }))

 # CSVファイルとして保存
write.csv(new_data, file = "C:/Users/.../Desktop/Amedas_Chichibu1997.csv", row.names = FALSE)

 ### 1月6日から2月5日までのデータを取得(三峯、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 1:2) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day < 6) || (month == 2 && day > 5 )) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=1997&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("1997-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Mitsumine1997.csv", row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu1997 = read.csv("C:/Users/.../desktop/Chichibu1997.csv", stringsAsFactors = FALSE)

Chichibu1997$DateTime = as.POSIXct(Chichibu1997$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをChicXXXX_oriに待避
Chic1997_ori <- Chic1997

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1997-01-07 00:00", "1997-02-05 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu1997 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic1997 <- Chic1997 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic1997$RainCount, na.rm = TRUE)*0.5

Chic1997 %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic1997 %>% filter(month(DateTime) == 2) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic1997$AirTemp, na.rm = TRUE)

Chic1997 %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic1997 %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic1997$DateTime <- format(Chic1997$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic1997, file = "C:/Users/.../Desktop/Chic1997.csv", row.names = FALSE)
Chic1997$DateTime = as.POSIXct(Chic1997$DateTime, format='%Y/%m/%d %H:%M')

1998

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 11月3日から12月31日までのデータを取得(秩父、1時間ごと)
 # データを格納するリスト
data_list <- list()

for (month in 11:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 11 && day < 3) || (month == 11 && day > 30 ) || (month == 12 && day > 31)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/hourly_s1.php?prec_no=43&block_no=47641&year=1998&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("1998-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # ヘッダー行を削除
data <- data[-1, ]

 # 時間列を数値型に変換
data$<- as.numeric(data$時)

 # NAの行を削除
data <- data %>% filter(!is.na(時))

 # 時間列をdatetime型に変換
data$Time <- ymd_hms(paste0(data$Date, " ", sprintf("%02d", data$時), ":00:00"))

 # 10分間隔の時間列を作成
time_range <- seq(from = min(data$Time, na.rm = TRUE), to = max(data$Time, na.rm = TRUE) + hours(1), by = "10 mins")

 # 新しいデータフレームを作成
new_data <- data.frame(Time = time_range)

 # 気温データを1時間ごとにコピーして10分間隔に引き延ばす
new_data <- new_data %>%
  mutate(Temperature = sapply(Time, function(x) {
    datetime_data <- data %>% filter(Date == date(x) & hour(Time) == hour(x))
    if (nrow(datetime_data) > 0) {
      return(datetime_data$`気温(℃)`[1])
    } else {
      return(NA)
    }
  }))

 # CSVファイルとして保存
write.csv(new_data, file = "C:/Users/.../Desktop/Amedas_Chichibu1998.csv", row.names = FALSE)

 ### 11月3日から12月31日までのデータを取得(三峯、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 11:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 11 && day < 3) || (month == 11 && day > 30 ) || (month == 12 && day > 31)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=1998&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("1998-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Mitsumine1998.csv", row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu1998 = read.csv("C:/Users/.../desktop/Chichibu1998.csv", stringsAsFactors = FALSE)

Chichibu1998$DateTime = as.POSIXct(Chichibu1998$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをChicXXXX_oriに待避
Chic1998_ori <- Chic1998

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1998-11-04 00:00", "1998-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu1998 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic1998 <- Chic1998 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic1998$RainCount, na.rm = TRUE)*0.5

Chic1998 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic1998 %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic1998$AirTemp, na.rm = TRUE)

Chic1998 %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic1998 %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic1998$DateTime <- format(Chic1998$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic1998, file = "C:/Users/.../Desktop/Chic1998.csv", row.names = FALSE)
Chic1998$DateTime = as.POSIXct(Chic1998$DateTime, format='%Y/%m/%d %H:%M')

1999

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 9月1日から11月30日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 9:11) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 9 && day > 30) || (month == 10 && day > 31 ) || (month == 11 && day > 30)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=1999&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0("1999-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(時分 != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("時分", "降水量(mm)", "Date"))

 # CSVファイルとして保存
write.csv(data, file = "C:/Users/.../Desktop/Amedas_Mitsumine1999.csv", row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu1999 = read.csv("C:/Users/.../desktop/Chichibu1999.csv", stringsAsFactors = FALSE)

Chichibu1999$DateTime = as.POSIXct(Chichibu1999$DateTime, format='%Y/%m/%d %H:%M')

 # オリジナルのデータフレームをChicXXXX_oriに待避
Chic1999_ori <- Chic1999

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("1999-09-01 00:00", "1999-11-30 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu1999 %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic1999 <- Chic1999 %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic1999$RainCount, na.rm = TRUE)*0.5

Chic1999 %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic1999 %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic1999 %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic1999$DateTime <- format(Chic1999$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic1999, file = "C:/Users/.../Desktop/Chic1999.csv", row.names = FALSE)
Chic1999$DateTime = as.POSIXct(Chic1999$DateTime, format='%Y/%m/%d %H:%M')

2000

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 11月16日から12月14日までのデータを取得(秩父、気温、1時間ごと)

this_year <- 2000

 # データを格納するリスト
data_list <- list()

for (month in 11:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 11 && day < 16) || (month == 11 && day > 30 ) || (month == 12 && day > 14)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/hourly_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # ヘッダー行を削除
data <- data[-1, ]

 # 時間列を数値型に変換
data$<- as.numeric(data$時)

 # NAの行を削除
data <- data %>% filter(!is.na(時))

 # 時間列をdatetime型に変換
data$Time <- ymd_hms(paste0(data$Date, " ", sprintf("%02d", data$時), ":00:00"))

 # 10分間隔の時間列を作成
time_range <- seq(from = min(data$Time, na.rm = TRUE), to = max(data$Time, na.rm = TRUE) + hours(1), by = "10 mins")

 # 新しいデータフレームを作成
new_data <- data.frame(Time = time_range)

 # 気温データを1時間ごとにコピーして10分間隔に引き延ばす
new_data <- new_data %>%
  mutate(Temperature = sapply(Time, function(x) {
    datetime_data <- data %>% filter(Date == date(x) & hour(Time) == hour(x))
    if (nrow(datetime_data) > 0) {
      return(datetime_data$`気温(℃)`[1])
    } else {
      return(NA)
    }
  }))

 # CSVファイルとして保存
write.csv(new_data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 11月16日から12月14日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 11:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 11 && day < 16) || (month == 11 && day > 30 ) || (month == 12 && day > 14)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data <- get(paste0("Chichibu", this_year))
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)

Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2000-11-17 00:00", "2000-12-14 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2000$DateTime <- format(Chic2000$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2000, file = "C:/Users/.../Desktop/Chic2000.csv", row.names = FALSE)
Chic2000$DateTime = as.POSIXct(Chic2000$DateTime, format='%Y/%m/%d %H:%M')

2001

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 2月16日から3月3日までのデータを取得(秩父、気温、1時間ごと)

this_year <- 2001

 # データを格納するリスト
data_list <- list()

for (month in 2:3) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 2 && day < 16) || (month == 2 && day > 28 ) || (month == 3 && day > 3)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/hourly_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # ヘッダー行を削除
data <- data[-1, ]

 # 時間列を数値型に変換
data$<- as.numeric(data$時)

 # NAの行を削除
data <- data %>% filter(!is.na(時))

 # 時間列をdatetime型に変換
data$Time <- ymd_hms(paste0(data$Date, " ", sprintf("%02d", data$時), ":00:00"))

 # 10分間隔の時間列を作成
time_range <- seq(from = min(data$Time, na.rm = TRUE), to = max(data$Time, na.rm = TRUE) + hours(1), by = "10 mins")

 # 新しいデータフレームを作成
new_data <- data.frame(Time = time_range)

 # 気温データを1時間ごとにコピーして10分間隔に引き延ばす
new_data <- new_data %>%
  mutate(Temperature = sapply(Time, function(x) {
    datetime_data <- data %>% filter(Date == date(x) & hour(Time) == hour(x))
    if (nrow(datetime_data) > 0) {
      return(datetime_data$`気温(℃)`[1])
    } else {
      return(NA)
    }
  }))

 # CSVファイルとして保存
write.csv(new_data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 2月16日から3月3日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 2:3) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 2 && day < 16) || (month == 2 && day > 28 ) || (month == 3 && day > 3)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2001-02-17 00:00", "2001-03-03 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 2) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2001$DateTime <- format(Chic2001$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2001, file = "C:/Users/.../Desktop/Chic2001.csv", row.names = FALSE)
Chic2001$DateTime = as.POSIXct(Chic2001$DateTime, format='%Y/%m/%d %H:%M')

2002

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 11月1日から12月14日までのデータを取得(秩父、気温、1時間ごと)

this_year <- 2002

 # データを格納するリスト
data_list <- list()

for (month in 11:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 11 && day > 30 ) || (month == 12 && day > 14)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/hourly_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # ヘッダー行を削除
data <- data[-1, ]

 # 時間列を数値型に変換
data$<- as.numeric(data$時)

 # NAの行を削除
data <- data %>% filter(!is.na(時))

 # 時間列をdatetime型に変換
data$Time <- ymd_hms(paste0(data$Date, " ", sprintf("%02d", data$時), ":00:00"))

 # 10分間隔の時間列を作成
time_range <- seq(from = min(data$Time, na.rm = TRUE), to = max(data$Time, na.rm = TRUE) + hours(1), by = "10 mins")

 # 新しいデータフレームを作成
new_data <- data.frame(Time = time_range)

 # 気温データを1時間ごとにコピーして10分間隔に引き延ばす
new_data <- new_data %>%
  mutate(Temperature = sapply(Time, function(x) {
    datetime_data <- data %>% filter(Date == date(x) & hour(Time) == hour(x))
    if (nrow(datetime_data) > 0) {
      return(datetime_data$`気温(℃)`[1])
    } else {
      return(NA)
    }
  }))

 # CSVファイルとして保存
write.csv(new_data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 11月1日から12月14日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 11:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 11 && day > 30 ) || (month == 12 && day > 14)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2002-11-02 00:00", "2002-12-14 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2002$DateTime <- format(Chic2002$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2002, file = "C:/Users/.../Desktop/Chic2002.csv", row.names = FALSE)
Chic2002$DateTime = as.POSIXct(Chic2002$DateTime, format='%Y/%m/%d %H:%M')

2004

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 3月1日から5月7日までのデータを取得(秩父、気温、1時間ごと)

this_year <- 2004

 # データを格納するリスト
data_list <- list()

for (month in 3:5) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 4 && day > 30 ) || (month == 5 && day > 7)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/hourly_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # ヘッダー行を削除
data <- data[-1, ]

 # 時間列を数値型に変換
data$<- as.numeric(data$時)

 # NAの行を削除
data <- data %>% filter(!is.na(時))

 # 時間列をdatetime型に変換
data$Time <- ymd_hms(paste0(data$Date, " ", sprintf("%02d", data$時), ":00:00"))

 # 10分間隔の時間列を作成
time_range <- seq(from = min(data$Time, na.rm = TRUE), to = max(data$Time, na.rm = TRUE) + hours(1), by = "10 mins")

 # 新しいデータフレームを作成
new_data <- data.frame(Time = time_range)

 # 気温データを1時間ごとにコピーして10分間隔に引き延ばす
new_data <- new_data %>%
  mutate(Temperature = sapply(Time, function(x) {
    datetime_data <- data %>% filter(Date == date(x) & hour(Time) == hour(x))
    if (nrow(datetime_data) > 0) {
      return(datetime_data$`気温(℃)`[1])
    } else {
      return(NA)
    }
  }))

 # CSVファイルとして保存
write.csv(new_data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 3月1日から5月7日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 3:5) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 4 && day > 30 ) || (month == 5 && day > 7)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2004-03-02 00:00", "2004-05-07 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2004$DateTime <- format(Chic2004$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2004, file = "C:/Users/.../Desktop/Chic2004.csv", row.names = FALSE)
Chic2004$DateTime = as.POSIXct(Chic2004$DateTime, format='%Y/%m/%d %H:%M')

2005

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 1月3日から2月13日までのデータを取得(秩父、気温、1時間ごと)

this_year <- 2005

 # データを格納するリスト
data_list <- list()

for (month in 1:2) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day < 3 ) || (month == 2 && day > 13)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/hourly_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # ヘッダー行を削除
data <- data[-1, ]

 # 時間列を数値型に変換
data$<- as.numeric(data$時)

 # NAの行を削除
data <- data %>% filter(!is.na(時))

 # 時間列をdatetime型に変換
data$Time <- ymd_hms(paste0(data$Date, " ", sprintf("%02d", data$時), ":00:00"))

 # 10分間隔の時間列を作成
time_range <- seq(from = min(data$Time, na.rm = TRUE), to = max(data$Time, na.rm = TRUE) + hours(1), by = "10 mins")

 # 新しいデータフレームを作成
new_data <- data.frame(Time = time_range)

 # 気温データを1時間ごとにコピーして10分間隔に引き延ばす
new_data <- new_data %>%
  mutate(Temperature = sapply(Time, function(x) {
    datetime_data <- data %>% filter(Date == date(x) & hour(Time) == hour(x))
    if (nrow(datetime_data) > 0) {
      return(datetime_data$`気温(℃)`[1])
    } else {
      return(NA)
    }
  }))

 # CSVファイルとして保存
write.csv(new_data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 1月3日から12月31日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 1:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day < 3 ) || (month == 2 && day > 28) || (month == 4 && day > 30) || (month == 6 && day > 30) || (month == 9 && day > 30) || (month == 11 && day > 30)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2005-01-04 00:00", "2005-02-13 23:50"),
  c("2005-05-01 00:00", "2005-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 ## AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2005-01-04 00:00", "2005-02-13 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 2) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2005$DateTime <- format(Chic2005$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2005, file = "C:/Users/.../Desktop/Chic2005.csv", row.names = FALSE)
Chic2005$DateTime = as.POSIXct(Chic2005$DateTime, format='%Y/%m/%d %H:%M')

2006

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 1月19日から4月23日までのデータを取得(秩父、気温、1時間ごと)

this_year <- 2006

 # データを格納するリスト
data_list <- list()

for (month in 1:4) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day < 19 ) || (month == 2 && day > 28) || (month == 4 && day > 23)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/hourly_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # ヘッダー行を削除
data <- data[-1, ]

 # 時間列を数値型に変換
data$<- as.numeric(data$時)

 # NAの行を削除
data <- data %>% filter(!is.na(時))

 # 時間列をdatetime型に変換
data$Time <- ymd_hms(paste0(data$Date, " ", sprintf("%02d", data$時), ":00:00"))

 # 10分間隔の時間列を作成
time_range <- seq(from = min(data$Time, na.rm = TRUE), to = max(data$Time, na.rm = TRUE) + hours(1), by = "10 mins")

 # 新しいデータフレームを作成
new_data <- data.frame(Time = time_range)

 # 気温データを1時間ごとにコピーして10分間隔に引き延ばす
new_data <- new_data %>%
  mutate(Temperature = sapply(Time, function(x) {
    datetime_data <- data %>% filter(Date == date(x) & hour(Time) == hour(x))
    if (nrow(datetime_data) > 0) {
      return(datetime_data$`気温(℃)`[1])
    } else {
      return(NA)
    }
  }))

 # CSVファイルとして保存
write.csv(new_data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 1月19日から4月23日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 1:4) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day < 19 ) || (month == 2 && day > 28) || (month == 4 && day > 23)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2006-01-20 00:00", "2006-04-23 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 2) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 4) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 4) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2006$DateTime <- format(Chic2006$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2006, file = "C:/Users/.../Desktop/Chic2006.csv", row.names = FALSE)
Chic2006$DateTime = as.POSIXct(Chic2006$DateTime, format='%Y/%m/%d %H:%M')

2007

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## データの読み直し
Chic2007 = read.csv("C:/Users/.../desktop/Chic2007.csv", stringsAsFactors = FALSE)

Chic2007$DateTime = as.POSIXct(Chic2007$DateTime, format='%Y/%m/%d %H:%M')

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 11月27日から12月3日までのデータを取得(秩父、気温、1時間ごと)

this_year <- 2007

 # データを格納するリスト
data_list <- list()

for (month in 11:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 11 && day < 27 ) || (month == 11 && day > 30) || (month == 12 && day > 3)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/hourly_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # ヘッダー行を削除
data <- data[-1, ]

 # 時間列を数値型に変換
data$<- as.numeric(data$時)

 # NAの行を削除
data <- data %>% filter(!is.na(時))

 # 時間列をdatetime型に変換
data$Time <- ymd_hms(paste0(data$Date, " ", sprintf("%02d", data$時), ":00:00"))

 # 10分間隔の時間列を作成
time_range <- seq(from = min(data$Time, na.rm = TRUE), to = max(data$Time, na.rm = TRUE) + hours(1), by = "10 mins")

 # 新しいデータフレームを作成
new_data <- data.frame(Time = time_range)

 # 気温データを1時間ごとにコピーして10分間隔に引き延ばす
new_data <- new_data %>%
  mutate(Temperature = sapply(Time, function(x) {
    datetime_data <- data %>% filter(Date == date(x) & hour(Time) == hour(x))
    if (nrow(datetime_data) > 0) {
      return(datetime_data$`気温(℃)`[1])
    } else {
      return(NA)
    }
  }))

 # CSVファイルとして保存
write.csv(new_data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 9月25日から12月3日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 9:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 9 && day < 25 ) || (month == 9 && day > 30) || (month == 11 && day > 30) || (month == 12 && day > 3)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2007-09-26 00:00", "2007-12-03 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 ## AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2007-11-28 00:00", "2007-12-03 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2007$DateTime <- format(Chic2007$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2007, file = "C:/Users/.../Desktop/Chic2007.csv", row.names = FALSE)
Chic2007$DateTime = as.POSIXct(Chic2007$DateTime, format='%Y/%m/%d %H:%M')

2009

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## データの読み直し
Chic2009 = read.csv("C:/Users/.../desktop/Chic2009.csv", stringsAsFactors = FALSE)

Chic2009$DateTime = as.POSIXct(Chic2009$DateTime, format='%Y/%m/%d %H:%M')

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 3月8日から3月27日までのデータを取得(秩父、気温、1時間ごと)

this_year <- 2009

 # データを格納するリスト
data_list <- list()

for (month in 3:3) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 3 && day < 8 ) || (month == 3 && day > 27)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "気温(℃)"] <- "AirTemp"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 気温と日時のみ
data <- data %>% select(c("HourMinute", "AirTemp", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 3月8日から3月27日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 3:3) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 3 && day < 8 ) || (month == 3 && day > 27)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2009-03-09 00:00", "2009-03-27 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 2) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 3) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2009$DateTime <- format(Chic2009$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2009, file = "C:/Users/.../Desktop/Chic2009.csv", row.names = FALSE)
Chic2009$DateTime = as.POSIXct(Chic2009$DateTime, format='%Y/%m/%d %H:%M')

2015

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## データの読み直し
Chic2015 = read.csv("C:/Users/.../desktop/Chic2015.csv", stringsAsFactors = FALSE)

Chic2015$DateTime = as.POSIXct(Chic2015$DateTime, format='%Y/%m/%d %H:%M')

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 1月23日から3月6日、5月4日から6月8日までのデータを取得(秩父、気温、1時間ごと)

this_year <- 2015

 # データを格納するリスト
data_list <- list()

for (month in c(1:3, 5:6)) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day < 23 ) || (month == 2 && day > 28) || (month == 3 && day > 6) || (month == 5 && day < 4) || (month == 6 && day > 8)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "気温(℃)"] <- "AirTemp"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 気温と日時のみ
data <- data %>% select(c("HourMinute", "AirTemp", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 5月4日から6月8日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 5:6) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 5 && day < 4 ) || (month == 6 && day > 8)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2015-05-05 00:00", "2015-06-08 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 ## AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2015-01-24 00:00", "2015-03-06 23:50"),
  c("2015-05-05 00:00", "2015-06-08 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 5) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 2) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 3) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 5) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 6) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2015$DateTime <- format(Chic2015$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2015, file = "C:/Users/.../Desktop/Chic2015.csv", row.names = FALSE)
Chic2015$DateTime = as.POSIXct(Chic2015$DateTime, format='%Y/%m/%d %H:%M')

2016

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 11月3日から12月31日のデータを取得(秩父、気温、1時間ごと)

this_year <- 2016

 # データを格納するリスト
data_list <- list()

for (month in 11:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 11 && day < 3 ) || (month == 11 && day > 30) || (month == 12 && day > 31)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "気温(℃)"] <- "AirTemp"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 気温と日時のみ
data <- data %>% select(c("HourMinute", "AirTemp", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 11月3日から12月31日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 11:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 11 && day < 3 ) || (month == 11 && day > 30) || (month == 12 && day > 31)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2016-11-04 00:00", "2016-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2016$DateTime <- format(Chic2016$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2016, file = "C:/Users/.../Desktop/Chic2016.csv", row.names = FALSE)
Chic2016$DateTime = as.POSIXct(Chic2016$DateTime, format='%Y/%m/%d %H:%M')

2017

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## データの読み直し
Chic2017 = read.csv("C:/Users/.../desktop/Chic2017.csv", stringsAsFactors = FALSE)

Chic2017$DateTime = as.POSIXct(Chic2017$DateTime, format='%Y/%m/%d %H:%M')

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 1月1日から1月4日のデータを取得(秩父、気温、1時間ごと)

this_year <- 2017

 # データを格納するリスト
data_list <- list()

for (month in 1:1) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day > 4)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "気温(℃)"] <- "AirTemp"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 気温と日時のみ
data <- data %>% select(c("HourMinute", "AirTemp", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ### 1月1日から1月4日、6月1日から7月31日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in c(1, 6:7)) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day > 4) || (month == 6 && day >30)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_ChichibuとAmedas_Mitsumineを統合してChichibuXXXXを作成する、1時間データは1:00からデータが始まる


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2017-01-01 00:00", "2017-01-04 23:50"),
  c("2017-06-01 00:00", "2017-07-31 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 ## AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2017-01-01 00:00", "2017-01-04 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 6) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2017$DateTime <- format(Chic2017$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2017, file = "C:/Users/.../Desktop/Chic2017.csv", row.names = FALSE)
Chic2017$DateTime = as.POSIXct(Chic2017$DateTime, format='%Y/%m/%d %H:%M')

2018

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

 ## データの読み直し
Chic2018 = read.csv("C:/Users/.../desktop/Chic2018.csv", stringsAsFactors = FALSE)

Chic2018$DateTime = as.POSIXct(Chic2018$DateTime, format='%Y/%m/%d %H:%M')

this_year <- 2018

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 9月24日から10月5日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 9:10) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 9 && day < 24) || (month == 9 && day >30) || (month == 10 && day >5)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_Mitsumineを調整してChichibuXXXXを作成する


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2018-09-25 00:00", "2018-10-05 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2018$DateTime <- format(Chic2018$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2018, file = "C:/Users/.../Desktop/Chic2018.csv", row.names = FALSE)
Chic2018$DateTime = as.POSIXct(Chic2018$DateTime, format='%Y/%m/%d %H:%M')

2021

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

this_year <- 2021

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 1月2日から1月4日、7月16日から10月8日までのデータを取得(秩父、気温、1時間ごと)

 # データを格納するリスト
data_list <- list()

for (month in c(1, 7:10)) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day < 2) || (month == 1 && day >4) || (month == 7 && day < 16) || (month == 9 && day > 30) || (month == 10 && day > 8)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "気温(℃)"] <- "AirTemp"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 気温と日時のみ
data <- data %>% select(c("HourMinute", "AirTemp", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 1月2日から1月4日、7月16日から10月8日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in c(1, 7:10)) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day < 2) || (month == 1 && day >4) || (month == 7 && day < 16) || (month == 9 && day > 30) || (month == 10 && day > 8)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_Mitsumineを調整してChichibuXXXXを作成する


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2021-01-03 00:00", "2021-01-04 23:50"),
  c("2021-07-17 00:00", "2021-08-06 23:50"),
  c("2021-08-20 00:00", "2021-09-06 23:50"),
  c("2021-09-19 00:00", "2021-10-08 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 7) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 8) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 7) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 8) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2021$DateTime <- format(Chic2021$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2021, file = "C:/Users/.../Desktop/Chic2021.csv", row.names = FALSE)
Chic2021$DateTime = as.POSIXct(Chic2021$DateTime, format='%Y/%m/%d %H:%M')

2022

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

this_year <- 2022

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 9月24日から12月31日までのデータを取得(秩父、気温、1時間ごと)

 # データを格納するリスト
data_list <- list()

for (month in 9:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 9 && day < 24) || (month == 9 && day >30) || (month == 11 && day >30)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "気温(℃)"] <- "AirTemp"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 気温と日時のみ
data <- data %>% select(c("HourMinute", "AirTemp", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 9月24日から12月31日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 9:12) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 9 && day < 24) || (month == 9 && day > 30) || (month == 11 && day > 30)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_Mitsumineを調整してChichibuXXXXを作成する


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2022-09-25 00:00", "2022-10-08 23:50"),
  c("2022-10-13 00:00", "2022-11-04 23:50"),
  c("2022-11-07 00:00", "2022-12-31 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 9) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 10) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 11) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 9) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 10) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 11) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))
Chic_data %>% filter(month(DateTime) == 12) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2022$DateTime <- format(Chic2022$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2022, file = "C:/Users/.../Desktop/Chic2022.csv", row.names = FALSE)
Chic2022$DateTime = as.POSIXct(Chic2022$DateTime, format='%Y/%m/%d %H:%M')

2023

 # 機器不調のため、気温と降水量を他観測所から引用
library(dplyr)
library(lubridate)
library(rvest)

this_year <- 2023

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 1月1日から1月4日までのデータを取得(秩父、気温、1時間ごと)

 # データを格納するリスト
data_list <- list()

for (month in 1:1) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day > 4)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_s1.php?prec_no=43&block_no=47641&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "気温(℃)"] <- "AirTemp"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 気温と日時のみ
data <- data %>% select(c("HourMinute", "AirTemp", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Chichibu", this_year, ".csv"), row.names = FALSE)

 ## ウェブスクレイピングでアメダスデータを取得する
 ### 1月1日から1月4日までのデータを取得(三峯、降水量、10分ごと)
 # データを格納するリスト
data_list <- list()

for (month in 1:1) {
  for (day in 1:31) {
    # 日付が存在しない場合はスキップ
    if ((month == 1 && day > 4)) {
      next
    }
    
    url <- paste0("https://www.data.jma.go.jp/stats/etrn/view/10min_a1.php?prec_no=43&block_no=1000&year=", this_year, "&month=", month, "&day=", day, "&view=p1")
    page <- read_html(url, encoding = "UTF-8")
    
    # テーブルの抽出
    table <- page %>% html_node("table.data2_s") %>% html_table(fill = TRUE)
    
    # 列名の修正
    colnames(table) <- make.unique(colnames(table))
    colnames(table)[colnames(table) == "時分"] <- "HourMinute"
    colnames(table)[colnames(table) == "降水量(mm)"] <- "Rain"
    
    # 日付列の追加
    table <- table %>% mutate(Date = ymd(paste0(this_year, "-", sprintf("%02d", month), "-", sprintf("%02d", day))))
    
    # データをリストに追加
    data_list[[paste0(month, "-", day)]] <- table
  }
}

 # データフレームに結合
data <- bind_rows(data_list)

 # "時分"の行を削除
data <- data %>% filter(HourMinute != "時分")

 # 降水量と日時のみ
data <- data %>% select(c("HourMinute", "Rain", "Date"))

 # CSVファイルとして保存
write.csv(data, file = paste0("C:/Users/.../Desktop/Amedas_Mitsumine", this_year, ".csv"), row.names = FALSE)

 ## Amedas_Mitsumineを調整してChichibuXXXXを作成する


 # アメダスデータの読み込み
Chichibu_data = read.csv(paste0("C:/Users/.../desktop/Chichibu", this_year, ".csv"), stringsAsFactors = FALSE)
Chichibu_data$DateTime = as.POSIXct(Chichibu_data$DateTime, format='%Y/%m/%d %H:%M')
assign(paste0("Chichibu", this_year), Chichibu_data)

 # オリジナルのデータフレームをChicXXXX_oriに待避
assign(paste0("Chic", this_year, "_ori"), get(paste0("Chic", this_year)))

 ## RainCount: 以下の期間をアメダスと置換, AirTemp: 以下の期間をアメダス*0.91-2.32して置換
 # 置換する日付範囲のリスト
date_ranges <- list(
  c("2023-01-01 00:00", "2023-01-04 23:50")
)

 # 各日付範囲でデータを置換
 # ChichibuXXXXの該当期間のデータを抽出
Subset <- do.call(rbind, lapply(date_ranges, function(range) {
  start_date <- as.POSIXct(range[1])
  end_date <- as.POSIXct(range[2])
  Chichibu_data %>% filter(DateTime >= start_date & DateTime <= end_date)
}))

 # ChicXXXXの該当期間のデータを置換
Chic_data <- get(paste0("Chic", this_year))
Chic_data <- Chic_data %>%
  left_join(Subset, by = "DateTime", suffix = c("", ".new")) %>%
  mutate(RainCount = ifelse(!is.na(RainCount.new), RainCount.new, RainCount)) %>%
  mutate(AirTemp = ifelse(!is.na(AirTemp.new), AirTemp.new *0.91 - 2.32, AirTemp)) %>%
  select(-ends_with(".new"))

 # 結果の確認
sum(Chic_data$RainCount, na.rm = TRUE)*0.5

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(total_rain = sum(RainCount, na.rm = TRUE)*0.5)

mean(Chic_data$AirTemp, na.rm = TRUE)

Chic_data %>% filter(month(DateTime) == 1) %>% summarize(ave_airtemp = mean(AirTemp, na.rm = TRUE))

 # Chic_dataをChicXXXXに読み込ませる
assign(paste0("Chic", this_year), Chic_data)

 # ChicXXXXをデスクトップにcsvファイルとして保存
Chic2023$DateTime <- format(Chic2023$DateTime, format='%Y/%m/%d %H:%M')
write.csv(Chic2023, file = "C:/Users/.../Desktop/Chic2023.csv", row.names = FALSE)
Chic2023$DateTime = as.POSIXct(Chic2023$DateTime, format='%Y/%m/%d %H:%M')

ホームページに戻る