Problem Description
Our goal was to validate the dimensions of the passage structures. We needed to check if the researcher-reported measurements were plausible (e.g., not too long or too short).
Problem Solving
It was difficult to define acceptable dimensions for the structures. Instead, we opted for a more general approach. We performed a general inspection of all data and summarized the columns. This allows for a visual check. Suspicious data can then be flagged and communicated to the researchers.
Common steps
We use datapaperchecks::read_sheet to load the camera trap setup data from all available spreadsheets.
Specific steps
Our initial step after reading the data is to check for the common “lenght” typo. Following this check, we generate a summary of all measurement fields for the underpasses, overpasses, and fencing spreadsheets.
Underpasses
Code
under <- datapaperchecks:: read_sheet (sheet = "Underpasses" , na = c ("NA" , "na" ))
under |>
purrr:: keep (~ any (stringr:: str_detect (names (.x), "lenght" ))) |>
names ()
Code
all_under <- under |>
purrr:: discard (~ nrow (.x) == 0 ) |>
purrr:: map (\(x) dplyr:: select (x, Structure_type: Waterbody_width)) |>
dplyr:: bind_rows (.id = "Dataset" )
summary (all_under)
Dataset Structure_type Structure_cell Structure_shape
Length:353 Length:353 Length:353 Length:353
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
Structure_photo Structure_age Structure_height Structure_length
Length:353 Min. : 1.00 Min. : 0.450 Min. : 0.80
Class :character 1st Qu.: 5.00 1st Qu.: 1.000 1st Qu.: 12.00
Mode :character Median :10.00 Median : 2.000 Median : 18.00
Mean :13.46 Mean : 2.306 Mean : 22.54
3rd Qu.:20.00 3rd Qu.: 3.000 3rd Qu.: 26.00
Max. :30.00 Max. :12.000 Max. :101.60
NA's :66 NA's :30 NA's :116
Structure_width Waterbody_width
Min. : 0.500 Min. : 0.500
1st Qu.: 1.200 1st Qu.: 1.300
Median : 2.000 Median : 3.000
Mean : 4.863 Mean : 9.854
3rd Qu.: 3.000 3rd Qu.: 5.500
Max. :127.000 Max. :170.000
NA's :27 NA's :314
Overpasses
Code
over <- datapaperchecks:: read_sheet (sheet = "Overpasses" , na = c ("NA" , "na" ))
over |>
purrr:: keep (~ any (stringr:: str_detect (names (.x), "lenght" ))) |>
names ()
Code
all_over <- over |>
purrr:: discard (~ nrow (.x) == 0 ) |>
purrr:: map (\(x) dplyr:: select (x, Structure_type: Structure_internal_height)) |>
dplyr:: bind_rows (.id = "Dataset" )
summary (all_over)
Dataset Structure_type Structure_material Structure_anchor_1
Length:141 Length:141 Length:141 Length:141
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
Structure_anchor_2 Structure_branch_access Structure_photo Structure_age
Length:141 Length:141 Length:141 Min. : 1.000
Class :character Class :character Class :character 1st Qu.: 1.000
Mode :character Mode :character Mode :character Median : 5.000
Mean : 6.226
3rd Qu.:10.000
Max. :20.000
NA's :35
Structure_height Structure_length Structure_width Structure_internal_height
Min. : 4.100 Min. : 6.00 Min. : 0.0500 Min. : NA
1st Qu.: 6.545 1st Qu.: 11.68 1st Qu.: 0.3875 1st Qu.: NA
Median : 7.000 Median : 15.00 Median : 0.5000 Median : NA
Mean :12.461 Mean : 16.84 Mean : 1.3005 Mean :NaN
3rd Qu.:18.500 3rd Qu.: 20.00 3rd Qu.: 0.5000 3rd Qu.: NA
Max. :37.000 Max. :120.00 Max. :39.0000 Max. : NA
NA's :2 NA's :2 NA's :33 NA's :141
Fencing
Code
fence <- datapaperchecks:: read_sheet (sheet = "Fencing" , na = c ("NA" , "na" ))
fence |>
purrr:: keep (~ any (stringr:: str_detect (names (.x), "lenght" ))) |>
names ()
Code
all_fence <- fence |>
purrr:: discard (~ nrow (.x) == 0 ) |>
purrr:: map (\(x) {
dplyr:: select (x, Fence_mesh_size: Fence_length_b2)
}) |>
dplyr:: bind_rows (.id = "Dataset" )
summary (all_fence)
Dataset Fence_mesh_size Fence_height Fence_length_a1
Length:79 Length:79 Min. :0.600 Min. : 0.0
Class :character Class :character 1st Qu.:1.500 1st Qu.: 70.0
Mode :character Mode :character Median :2.000 Median : 100.0
Mean :1.741 Mean : 222.2
3rd Qu.:2.000 3rd Qu.: 235.0
Max. :2.200 Max. :2200.0
NA's :5 NA's :6
Fence_length_b1 Fence_length_a2 Fence_length_b2
Min. : 0.00 Min. : 30.0 Min. : 10.0
1st Qu.: 62.28 1st Qu.: 98.5 1st Qu.: 88.0
Median : 100.00 Median : 100.0 Median : 100.0
Mean : 217.08 Mean : 226.5 Mean : 223.0
3rd Qu.: 235.00 3rd Qu.: 234.6 3rd Qu.: 234.6
Max. :2000.00 Max. :2000.0 Max. :2000.0
NA's :6 NA's :7 NA's :7