﻿rm(list = ls())  # ワークスペースをクリア
data <- c(62, 64, 58, 63, 67)
# (1)の結果出力
median(data)  # 中央値
mean(data)  # 平均値
# (2)
true_med <- 64.0
true_ave <- 63.0
# 正しい数値に基づけば，5個の記録の合計は平均値63.0の5倍となる
S <- true_ave * length(data)
correct_data = c(0, 0, 0, 0, 0)  # 訂正後のデータを格納
target_i = 1  # 訂正対象となるデータの添え字(※暫定的に初期値を1とする)
# データの各要素に対して修正を試みる
for(i in 1:length(data)) {
  # i番目の記録が誤りだと仮定して，訂正後の記録を格納する
  correct_data <- data
  # data[i]が誤りならば
  # (誤りのdata[i]以外の数値の合計) + (data[i]の正しい数値) = S
  correct_data[i] <- S - (sum(data) - data[i])
  # 訂正後の中央値が64.0であればfor文を終了
  if(median(correct_data) == true_med) { 
    target_i = i
    break 
  }
}
# (2)の結果出力
data[target_i]  # 誤っている数値
correct_data[target_i]  # 正しい数値