We can try mapping through all numeric columns and when a zero (or a very small zero say 0.0000001) is found, then replace it with 0.0001.
library(tidyverse)
map_if(df[, 3:12], is.numeric, ~ ifelse(near(., 0), .0001, .)) %>%
    bind_cols() %>% 
    {bind_cols(df[1:2], .)}
#>    st       Date     OD   pH    DBO st.1 year Veg    Water    Soil     Crop
#> 1   A 01/07/2005 8.0000  6.3 3.0000    A 2005 100 200.0000 80.0000 130.0000
#> 2   A 02/06/2005 7.0000  6.2 2.2000    A 2005 100 200.0000 80.0000 130.0000
#> 3   A 01/01/2005 0.0001  6.5 3.1000    A 2005 100 200.0000 80.0000 130.0000
#> 4   A 03/05/2006 6.0000  6.3 4.0000    A 2005 100 200.0000 80.0000 130.0000
#> 5   A 09/08/2006 6.8000  7.1 1.1000    A 2005 100 200.0000 80.0000 130.0000
#> 6   A 12/12/2006 7.3000  8.1 2.9000    A 2005 100 200.0000 80.0000 130.0000
#> 7   B 02/07/2005 6.8000  5.4 2.6000    B 2006  98 180.0000  0.1000 132.0000
#> 8   B 03/06/2005 6.0000  5.3 1.9000    B 2006  98 180.0000 84.0000 132.0000
#> 9   B 02/01/2005 6.2000  5.5 2.6000    B 2006  98 180.0000 84.0000 132.0000
#> 10  B 04/05/2006 0.0001  5.4 0.0001    B 2006  98   0.0001 84.0000 132.0000
#> 11  B 10/08/2006 5.8000  6.0 0.9000    B 2006  98   0.0001 84.0000 132.0000
#> 12  B 13/12/2006 6.2000  6.9 2.5000    B 2006  98   0.0001 84.0000 132.0000
#> 13  C 20/12/2006 6.5000  7.2 2.6000    C 2007  93   0.0001 79.0000 127.0000
#> 14  C 27/12/2006 6.8000  7.6 2.7000    C 2007  93   0.0001 79.0000 127.0000
#> 15  C 03/01/2007 7.2000  8.0 2.9000    C 2007  93   0.0001 79.0000 127.0000
#> 16  C 10/01/2007 7.5000  8.4 3.0000    C 2007  93   0.0001  0.0001 127.0000
#> 17  C 17/01/2007 7.9000  8.8 0.0001    C 2007  93 175.0000 79.0000 127.0000
#> 18  C 24/01/2007 8.3000  9.2 3.3000    C 2007  93 175.0000 79.0000   0.0001
#> 19  C 31/01/2007 8.7000  9.7 3.5000    C 2007  93 175.0000 79.0000 127.0000
#> 20  C 07/02/2007 9.2000 10.2 3.6000    C 2007  93 175.0000 79.0000   0.0001
#>       Grass
#> 1   70.0000
#> 2   70.0000
#> 3   70.0000
#> 4   70.0000
#> 5   70.0000
#> 6   70.0000
#> 7   86.0000
#> 8   86.0000
#> 9   86.0000
#> 10   0.0001
#> 11  86.0000
#> 12  86.0000
#> 13 106.0000
#> 14   0.0001
#> 15 106.0000
#> 16 106.0000
#> 17 106.0000
#> 18 106.0000
#> 19 106.0000
#> 20 106.0000
Using across:
df %>%
    mutate(across(where(is.numeric), ~ifelse(near(., 0), 0.0001, .)))
#>    st       Date     OD   pH    DBO st.1 year Veg    Water    Soil     Crop
#> 1   A 01/07/2005 8.0000  6.3 3.0000    A 2005 100 200.0000 80.0000 130.0000
#> 2   A 02/06/2005 7.0000  6.2 2.2000    A 2005 100 200.0000 80.0000 130.0000
#> 3   A 01/01/2005 0.0001  6.5 3.1000    A 2005 100 200.0000 80.0000 130.0000
#> 4   A 03/05/2006 6.0000  6.3 4.0000    A 2005 100 200.0000 80.0000 130.0000
#> 5   A 09/08/2006 6.8000  7.1 1.1000    A 2005 100 200.0000 80.0000 130.0000
#> 6   A 12/12/2006 7.3000  8.1 2.9000    A 2005 100 200.0000 80.0000 130.0000
#> 7   B 02/07/2005 6.8000  5.4 2.6000    B 2006  98 180.0000  0.1000 132.0000
#> 8   B 03/06/2005 6.0000  5.3 1.9000    B 2006  98 180.0000 84.0000 132.0000
#> 9   B 02/01/2005 6.2000  5.5 2.6000    B 2006  98 180.0000 84.0000 132.0000
#> 10  B 04/05/2006 0.0001  5.4 0.0001    B 2006  98   0.0001 84.0000 132.0000
#> 11  B 10/08/2006 5.8000  6.0 0.9000    B 2006  98   0.0001 84.0000 132.0000
#> 12  B 13/12/2006 6.2000  6.9 2.5000    B 2006  98   0.0001 84.0000 132.0000
#> 13  C 20/12/2006 6.5000  7.2 2.6000    C 2007  93   0.0001 79.0000 127.0000
#> 14  C 27/12/2006 6.8000  7.6 2.7000    C 2007  93   0.0001 79.0000 127.0000
#> 15  C 03/01/2007 7.2000  8.0 2.9000    C 2007  93   0.0001 79.0000 127.0000
#> 16  C 10/01/2007 7.5000  8.4 3.0000    C 2007  93   0.0001  0.0001 127.0000
#> 17  C 17/01/2007 7.9000  8.8 0.0001    C 2007  93 175.0000 79.0000 127.0000
#> 18  C 24/01/2007 8.3000  9.2 3.3000    C 2007  93 175.0000 79.0000   0.0001
#> 19  C 31/01/2007 8.7000  9.7 3.5000    C 2007  93 175.0000 79.0000 127.0000
#> 20  C 07/02/2007 9.2000 10.2 3.6000    C 2007  93 175.0000 79.0000   0.0001
#>       Grass
#> 1   70.0000
#> 2   70.0000
#> 3   70.0000
#> 4   70.0000
#> 5   70.0000
#> 6   70.0000
#> 7   86.0000
#> 8   86.0000
#> 9   86.0000
#> 10   0.0001
#> 11  86.0000
#> 12  86.0000
#> 13 106.0000
#> 14   0.0001
#> 15 106.0000
#> 16 106.0000
#> 17 106.0000
#> 18 106.0000
#> 19 106.0000
#> 20 106.0000
Created on 2021-11-30 by the reprex package (v2.0.1)