Мой ночной скрипт аудита (Rscript, base R) помечает морозилки, у которых пиковая температура выше лимита. Вчера у U-03 отключили логгер, поэтому все temp_c для неё в экспорте — строка ERR. В отчёте всё равно написано, что U-03 ok. Никому не пришёл алерт. В напечатанной таблице для этого юнита n_valid 0, peak_c -Inf и mean_c NaN. Остальные юниты выглядят правильно.
Я решил, что сломан шаг чтения. Добавил "ERR" в na.strings, проверил, что temp_c читается как numeric, и запустил с --verbose. Количество строк верное. Ничего не изменилось.
Нужный фрагмент:
readings <- read.csv(infile, stringsAsFactors = FALSE,
na.strings = c("", "NA", "ERR"))
peak_c = max(df$temp_c, na.rm = TRUE),
mean_c = round(mean(df$temp_c, na.rm = TRUE), 1)
...
res$status <- ifelse(res$peak_c > LIMIT_C, "ALARM", "ok")
LIMIT_C равен -65. R ещё выводит предупреждение ближе к концу запуска. Мой терминал и так ругается на LC_CTYPE при каждом старте, поэтому я перестал читать предупреждения. Один раз моя джоба целый месяц работала из-за такого же предупреждения.
Это шаг чтения или что-то после него?