Le um CSV com delimitador virgula ou ponto-e-virgula e virgula ou ponto
como separador decimal, ignorando sufixos de unidade (ex.: "0,04 mg/L").
Le tudo como texto primeiro, normaliza nomes, e faz parse robusto de colunas
numericas. Ajusta pH evidentemente fora de faixa (ex.: 72 -> 7.2). Opcionalmente
normaliza coordenadas geograficas se vierem em graus * 1e7.
Usage
read_wq(
path,
tz = "America/Bahia",
normalize_coords = TRUE,
nd_policy = c("ld2", "ld", "zero", "na")
)Arguments
- path
Caminho para o arquivo CSV.
- tz
Fuso horario para datas (mantido por compatibilidade; datas sao
Date).- normalize_coords
Logico; se
TRUE(padrao) aplicafix_coords()emlat/lon.- nd_policy
Politica para valores censurados (ND/<LD/<LOQ). Opcoes:
"ld2"(metade do limite, padrao),"ld"(limite),"zero"(0),"na"(NA_real_).
Value
Um tibble com:
nomes de colunas normalizados (minusculas, espacos ->
_, sem nao-alfanum);colunas numericas parseadas ignorando strings de unidade;
dataparseada paraDate(tentaymde depoisdmy);pontocoerido paracharacter(quando presente);lat/loncorrigidos quandonormalize_coords = TRUE.
Parsed numeric candidates
c("ph","od","turbidez","dbo","coliformes","p_total","ptotal",
"fosforo_total","temperatura","ec","condutividade","n_nitrato","n_nitrito",
"amonia","nt_total","n_total","ntk","nkjeldahl","nitrogenio_total",
"solidos_totais","solidos_suspensos","tds","conducao","qi","iqa","iet",
"iet_carlson","iet_lamparelli","nsfwqi","vazao","lat","lon")
Valores censurados (ND/<LD/<LOQ)
O pacote implementa uma politica explicita para tratamento de valores censurados.
Valores como "<0.01", "<LD", "<LOD", "<LOQ", "ND"
sao detectados e tratados conforme a politica especificada em nd_policy.
O padrao "ld2" usa metade do limite de deteccao (recomendacao conservadora).
Examples
if (FALSE) { # \dontrun{
tmp <- tempfile(fileext = ".csv")
writeLines(
c("ponto;data;ph;od;turbidez;lat;lon",
"R1_01;2025-01-20;7,2;6,8;5,1;-163456789;-396543210",
"R1_01;21/01/2025;7.1;7.0;4.8 mg/L;-16.3456789;-39.6543210"),
tmp
)
x <- read_wq(tmp)
str(x)
} # }