Getting ready:
Examples using select
:
select(litters_data, group, litter_number)
## # A tibble: 49 x 2
## group litter_number
## <chr> <chr>
## 1 Con7 #85
## 2 Con7 #1/2/95/2
## 3 Con7 #5/5/3/83/3-3
## 4 Con7 #5/4/2/95/2
## 5 Con7 #4/2/95/3-3
## 6 Con7 #2/2/95/3-2
## 7 Con7 #1/5/3/83/3-3/2
## 8 Con8 #3/83/3-3
## 9 Con8 #2/95/3
## 10 Con8 #3/5/2/2/95
## # ... with 39 more rows
select(litters_data, group, litter_number, pups_survive, gd0_weight)
## # A tibble: 49 x 4
## group litter_number pups_survive gd0_weight
## <chr> <chr> <int> <dbl>
## 1 Con7 #85 3 19.7
## 2 Con7 #1/2/95/2 7 27.0
## 3 Con7 #5/5/3/83/3-3 5 26.0
## 4 Con7 #5/4/2/95/2 4 28.5
## 5 Con7 #4/2/95/3-3 6 NA
## 6 Con7 #2/2/95/3-2 4 NA
## 7 Con7 #1/5/3/83/3-3/2 9 NA
## 8 Con8 #3/83/3-3 8 NA
## 9 Con8 #2/95/3 8 NA
## 10 Con8 #3/5/2/2/95 8 28.5
## # ... with 39 more rows
select(litters_data, -gd18_weight)
## # A tibble: 49 x 7
## group litter_number gd0_weight gd_of_birth pups_born_alive
## <chr> <chr> <dbl> <int> <int>
## 1 Con7 #85 19.7 20 3
## 2 Con7 #1/2/95/2 27.0 19 8
## 3 Con7 #5/5/3/83/3-3 26.0 19 6
## 4 Con7 #5/4/2/95/2 28.5 19 5
## 5 Con7 #4/2/95/3-3 NA 20 6
## 6 Con7 #2/2/95/3-2 NA 20 6
## 7 Con7 #1/5/3/83/3-3/2 NA 20 9
## 8 Con8 #3/83/3-3 NA 20 9
## 9 Con8 #2/95/3 NA 20 8
## 10 Con8 #3/5/2/2/95 28.5 20 8
## # ... with 39 more rows, and 2 more variables: pups_dead_birth <int>,
## # pups_survive <int>
select(litters_data, group:gd_of_birth)
## # A tibble: 49 x 5
## group litter_number gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 Con7 #85 19.7 34.7 20
## 2 Con7 #1/2/95/2 27.0 42.0 19
## 3 Con7 #5/5/3/83/3-3 26.0 41.4 19
## 4 Con7 #5/4/2/95/2 28.5 44.1 19
## 5 Con7 #4/2/95/3-3 NA NA 20
## 6 Con7 #2/2/95/3-2 NA NA 20
## 7 Con7 #1/5/3/83/3-3/2 NA NA 20
## 8 Con8 #3/83/3-3 NA NA 20
## 9 Con8 #2/95/3 NA NA 20
## 10 Con8 #3/5/2/2/95 28.5 NA 20
## # ... with 39 more rows
select(litters_data, litter = litter_number, everything())
## # A tibble: 49 x 8
## litter group gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 #85 Con7 19.7 34.7 20
## 2 #1/2/95/2 Con7 27.0 42.0 19
## 3 #5/5/3/83/3-3 Con7 26.0 41.4 19
## 4 #5/4/2/95/2 Con7 28.5 44.1 19
## 5 #4/2/95/3-3 Con7 NA NA 20
## 6 #2/2/95/3-2 Con7 NA NA 20
## 7 #1/5/3/83/3-3/2 Con7 NA NA 20
## 8 #3/83/3-3 Con8 NA NA 20
## 9 #2/95/3 Con8 NA NA 20
## 10 #3/5/2/2/95 Con8 28.5 NA 20
## # ... with 39 more rows, and 3 more variables: pups_born_alive <int>,
## # pups_dead_birth <int>, pups_survive <int>
rename(litters_data, litter = litter_number)
## # A tibble: 49 x 8
## group litter gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 Con7 #85 19.7 34.7 20
## 2 Con7 #1/2/95/2 27.0 42.0 19
## 3 Con7 #5/5/3/83/3-3 26.0 41.4 19
## 4 Con7 #5/4/2/95/2 28.5 44.1 19
## 5 Con7 #4/2/95/3-3 NA NA 20
## 6 Con7 #2/2/95/3-2 NA NA 20
## 7 Con7 #1/5/3/83/3-3/2 NA NA 20
## 8 Con8 #3/83/3-3 NA NA 20
## 9 Con8 #2/95/3 NA NA 20
## 10 Con8 #3/5/2/2/95 28.5 NA 20
## # ... with 39 more rows, and 3 more variables: pups_born_alive <int>,
## # pups_dead_birth <int>, pups_survive <int>
select(litters_data, group)
## # A tibble: 49 x 1
## group
## <chr>
## 1 Con7
## 2 Con7
## 3 Con7
## 4 Con7
## 5 Con7
## 6 Con7
## 7 Con7
## 8 Con8
## 9 Con8
## 10 Con8
## # ... with 39 more rows
pull(litters_data, group)
## [1] "Con7" "Con7" "Con7" "Con7" "Con7" "Con7" "Con7" "Con8" "Con8" "Con8"
## [11] "Con8" "Con8" "Con8" "Con8" "Con8" "Mod7" "Mod7" "Mod7" "Mod7" "Mod7"
## [21] "Mod7" "Mod7" "Mod7" "Mod7" "Mod7" "Mod7" "Mod7" "Low7" "Low7" "Low7"
## [31] "Low7" "Low7" "Low7" "Low7" "Low7" "Mod8" "Mod8" "Mod8" "Mod8" "Mod8"
## [41] "Mod8" "Mod8" "Low8" "Low8" "Low8" "Low8" "Low8" "Low8" "Low8"
select(litters_data, starts_with("gd"))
## # A tibble: 49 x 3
## gd0_weight gd18_weight gd_of_birth
## <dbl> <dbl> <int>
## 1 19.7 34.7 20
## 2 27.0 42.0 19
## 3 26.0 41.4 19
## 4 28.5 44.1 19
## 5 NA NA 20
## 6 NA NA 20
## 7 NA NA 20
## 8 NA NA 20
## 9 NA NA 20
## 10 28.5 NA 20
## # ... with 39 more rows
Examples with select using pup data (from Lynette):
select(pups_data, litter_number, sex, pd_ears)
## # A tibble: 313 x 3
## litter_number sex pd_ears
## <chr> <int> <int>
## 1 #85 1 4
## 2 #85 1 4
## 3 #1/2/95/2 1 5
## 4 #1/2/95/2 1 5
## 5 #5/5/3/83/3-3 1 5
## 6 #5/5/3/83/3-3 1 5
## 7 #5/4/2/95/2 1 NA
## 8 #4/2/95/3-3 1 4
## 9 #4/2/95/3-3 1 4
## 10 #2/2/95/3-2 1 4
## # ... with 303 more rows
Examples using filter
:
filter(litters_data, pups_born_alive >= 8)
## # A tibble: 28 x 8
## group litter_number gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 Con7 #1/2/95/2 27.0 42.0 19
## 2 Con7 #1/5/3/83/3-3/2 NA NA 20
## 3 Con8 #3/83/3-3 NA NA 20
## 4 Con8 #2/95/3 NA NA 20
## 5 Con8 #3/5/2/2/95 28.5 NA 20
## 6 Con8 #5/4/3/83/3 28.0 NA 19
## 7 Con8 #3/5/3/83/3-3-2 NA NA 20
## 8 Mod7 #59 17.0 33.4 19
## 9 Mod7 #103 21.4 42.1 19
## 10 Mod7 #3/83/3-2 NA NA 19
## # ... with 18 more rows, and 3 more variables: pups_born_alive <int>,
## # pups_dead_birth <int>, pups_survive <int>
filter(litters_data, pups_born_alive == 8)
## # A tibble: 16 x 8
## group litter_number gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 Con7 #1/2/95/2 27.0 42.0 19
## 2 Con8 #2/95/3 NA NA 20
## 3 Con8 #3/5/2/2/95 28.5 NA 20
## 4 Con8 #3/5/3/83/3-3-2 NA NA 20
## 5 Mod7 #59 17.0 33.4 19
## 6 Mod7 #3/83/3-2 NA NA 19
## 7 Low7 #84/2 24.3 40.8 20
## 8 Low7 #85/2 22.2 38.5 20
## 9 Mod8 #97 24.5 42.8 20
## 10 Mod8 #5/93/2 NA NA 19
## 11 Mod8 #7/110/3-2 27.5 46.0 19
## 12 Mod8 #82/4 33.4 52.7 20
## 13 Low8 #53 21.8 37.2 20
## 14 Low8 #79 25.4 43.8 19
## 15 Low8 #100 20.0 39.2 20
## 16 Low8 #108 25.6 47.5 20
## # ... with 3 more variables: pups_born_alive <int>, pups_dead_birth <int>,
## # pups_survive <int>
filter(litters_data, pups_born_alive > 8)
## # A tibble: 12 x 8
## group litter_number gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 Con7 #1/5/3/83/3-3/2 NA NA 20
## 2 Con8 #3/83/3-3 NA NA 20
## 3 Con8 #5/4/3/83/3 28.0 NA 19
## 4 Mod7 #103 21.4 42.1 19
## 5 Mod7 #4/2/95/2 23.5 NA 19
## 6 Mod7 #8/110/3-2 NA NA 20
## 7 Low7 #107 22.6 42.4 20
## 8 Low7 #98 23.8 43.8 20
## 9 Low7 #102 22.6 43.3 20
## 10 Low7 #101 23.8 42.7 20
## 11 Mod8 #5/93 NA 41.1 20
## 12 Mod8 #2/95/2 28.5 44.5 20
## # ... with 3 more variables: pups_born_alive <int>, pups_dead_birth <int>,
## # pups_survive <int>
filter(litters_data, !(pups_born_alive == 8))
## # A tibble: 33 x 8
## group litter_number gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 Con7 #85 19.7 34.7 20
## 2 Con7 #5/5/3/83/3-3 26.0 41.4 19
## 3 Con7 #5/4/2/95/2 28.5 44.1 19
## 4 Con7 #4/2/95/3-3 NA NA 20
## 5 Con7 #2/2/95/3-2 NA NA 20
## 6 Con7 #1/5/3/83/3-3/2 NA NA 20
## 7 Con8 #3/83/3-3 NA NA 20
## 8 Con8 #5/4/3/83/3 28.0 NA 19
## 9 Con8 #1/6/2/2/95-2 NA NA 20
## 10 Con8 #2/2/95/2 NA NA 19
## # ... with 23 more rows, and 3 more variables: pups_born_alive <int>,
## # pups_dead_birth <int>, pups_survive <int>
filter(litters_data, group == "Con7")
## # A tibble: 7 x 8
## group litter_number gd0_weight gd18_weight gd_of_birth pups_born_alive
## <chr> <chr> <dbl> <dbl> <int> <int>
## 1 Con7 #85 19.7 34.7 20 3
## 2 Con7 #1/2/95/2 27.0 42.0 19 8
## 3 Con7 #5/5/3/83/3-3 26.0 41.4 19 6
## 4 Con7 #5/4/2/95/2 28.5 44.1 19 5
## 5 Con7 #4/2/95/3-3 NA NA 20 6
## 6 Con7 #2/2/95/3-2 NA NA 20 6
## 7 Con7 #1/5/3/83/3-3/2 NA NA 20 9
## # ... with 2 more variables: pups_dead_birth <int>, pups_survive <int>
filter(litters_data, group != "Con7")
## # A tibble: 42 x 8
## group litter_number gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 Con8 #3/83/3-3 NA NA 20
## 2 Con8 #2/95/3 NA NA 20
## 3 Con8 #3/5/2/2/95 28.5 NA 20
## 4 Con8 #5/4/3/83/3 28.0 NA 19
## 5 Con8 #1/6/2/2/95-2 NA NA 20
## 6 Con8 #3/5/3/83/3-3-2 NA NA 20
## 7 Con8 #2/2/95/2 NA NA 19
## 8 Con8 #3/6/2/2/95-3 NA NA 20
## 9 Mod7 #59 17.0 33.4 19
## 10 Mod7 #103 21.4 42.1 19
## # ... with 32 more rows, and 3 more variables: pups_born_alive <int>,
## # pups_dead_birth <int>, pups_survive <int>
filter(litters_data, group != "Con7", pups_born_alive == 8)
## # A tibble: 15 x 8
## group litter_number gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 Con8 #2/95/3 NA NA 20
## 2 Con8 #3/5/2/2/95 28.5 NA 20
## 3 Con8 #3/5/3/83/3-3-2 NA NA 20
## 4 Mod7 #59 17.0 33.4 19
## 5 Mod7 #3/83/3-2 NA NA 19
## 6 Low7 #84/2 24.3 40.8 20
## 7 Low7 #85/2 22.2 38.5 20
## 8 Mod8 #97 24.5 42.8 20
## 9 Mod8 #5/93/2 NA NA 19
## 10 Mod8 #7/110/3-2 27.5 46.0 19
## 11 Mod8 #82/4 33.4 52.7 20
## 12 Low8 #53 21.8 37.2 20
## 13 Low8 #79 25.4 43.8 19
## 14 Low8 #100 20.0 39.2 20
## 15 Low8 #108 25.6 47.5 20
## # ... with 3 more variables: pups_born_alive <int>, pups_dead_birth <int>,
## # pups_survive <int>
Examples with pups data (from Kaitlin):
filter(pups_data, sex == 1)
## # A tibble: 155 x 6
## litter_number sex pd_ears pd_eyes pd_pivot pd_walk
## <chr> <int> <int> <int> <int> <int>
## 1 #85 1 4 13 7 11
## 2 #85 1 4 13 7 12
## 3 #1/2/95/2 1 5 13 7 9
## 4 #1/2/95/2 1 5 13 8 10
## 5 #5/5/3/83/3-3 1 5 13 8 10
## 6 #5/5/3/83/3-3 1 5 14 6 9
## 7 #5/4/2/95/2 1 NA 14 5 9
## 8 #4/2/95/3-3 1 4 13 6 8
## 9 #4/2/95/3-3 1 4 13 7 9
## 10 #2/2/95/3-2 1 4 NA 8 10
## # ... with 145 more rows
filter(pups_data, pd_walk < 11 & sex == 2)
## # A tibble: 127 x 6
## litter_number sex pd_ears pd_eyes pd_pivot pd_walk
## <chr> <int> <int> <int> <int> <int>
## 1 #1/2/95/2 2 4 13 7 9
## 2 #1/2/95/2 2 4 13 7 10
## 3 #1/2/95/2 2 5 13 8 10
## 4 #1/2/95/2 2 5 13 8 10
## 5 #1/2/95/2 2 5 13 6 10
## 6 #5/5/3/83/3-3 2 5 13 8 10
## 7 #5/5/3/83/3-3 2 5 14 7 10
## 8 #5/5/3/83/3-3 2 5 14 8 10
## 9 #5/4/2/95/2 2 NA 14 7 10
## 10 #5/4/2/95/2 2 NA 14 7 10
## # ... with 117 more rows
Examples:
mutate(litters_data,
wt_gain = gd18_weight - gd0_weight,
group = tolower(group)
)
## # A tibble: 49 x 9
## group litter_number gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 con7 #85 19.7 34.7 20
## 2 con7 #1/2/95/2 27.0 42.0 19
## 3 con7 #5/5/3/83/3-3 26.0 41.4 19
## 4 con7 #5/4/2/95/2 28.5 44.1 19
## 5 con7 #4/2/95/3-3 NA NA 20
## 6 con7 #2/2/95/3-2 NA NA 20
## 7 con7 #1/5/3/83/3-3/2 NA NA 20
## 8 con8 #3/83/3-3 NA NA 20
## 9 con8 #2/95/3 NA NA 20
## 10 con8 #3/5/2/2/95 28.5 NA 20
## # ... with 39 more rows, and 4 more variables: pups_born_alive <int>,
## # pups_dead_birth <int>, pups_survive <int>, wt_gain <dbl>
mutate(litters_data,
wt_gain = gd18_weight - gd0_weight,
normalized_gain = (wt_gain - mean(wt_gain, na.rm = TRUE)) / sd(wt_gain, na.rm = TRUE)
)
## # A tibble: 49 x 10
## group litter_number gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 Con7 #85 19.7 34.7 20
## 2 Con7 #1/2/95/2 27.0 42.0 19
## 3 Con7 #5/5/3/83/3-3 26.0 41.4 19
## 4 Con7 #5/4/2/95/2 28.5 44.1 19
## 5 Con7 #4/2/95/3-3 NA NA 20
## 6 Con7 #2/2/95/3-2 NA NA 20
## 7 Con7 #1/5/3/83/3-3/2 NA NA 20
## 8 Con8 #3/83/3-3 NA NA 20
## 9 Con8 #2/95/3 NA NA 20
## 10 Con8 #3/5/2/2/95 28.5 NA 20
## # ... with 39 more rows, and 5 more variables: pups_born_alive <int>,
## # pups_dead_birth <int>, pups_survive <int>, wt_gain <dbl>,
## # normalized_gain <dbl>
Examples with pups data (from Imaani):
mutate(pups_data, pd_minus_seven = pd_pivot - 7)
## # A tibble: 313 x 7
## litter_number sex pd_ears pd_eyes pd_pivot pd_walk pd_minus_seven
## <chr> <int> <int> <int> <int> <int> <dbl>
## 1 #85 1 4 13 7 11 0
## 2 #85 1 4 13 7 12 0
## 3 #1/2/95/2 1 5 13 7 9 0
## 4 #1/2/95/2 1 5 13 8 10 1
## 5 #5/5/3/83/3-3 1 5 13 8 10 1
## 6 #5/5/3/83/3-3 1 5 14 6 9 -1
## 7 #5/4/2/95/2 1 NA 14 5 9 -2
## 8 #4/2/95/3-3 1 4 13 6 8 -1
## 9 #4/2/95/3-3 1 4 13 7 9 0
## 10 #2/2/95/3-2 1 4 NA 8 10 1
## # ... with 303 more rows
mutate(pups_data, pd_sum = pd_ears + pd_eyes + pd_pivot + pd_walk)
## # A tibble: 313 x 7
## litter_number sex pd_ears pd_eyes pd_pivot pd_walk pd_sum
## <chr> <int> <int> <int> <int> <int> <int>
## 1 #85 1 4 13 7 11 35
## 2 #85 1 4 13 7 12 36
## 3 #1/2/95/2 1 5 13 7 9 34
## 4 #1/2/95/2 1 5 13 8 10 36
## 5 #5/5/3/83/3-3 1 5 13 8 10 36
## 6 #5/5/3/83/3-3 1 5 14 6 9 34
## 7 #5/4/2/95/2 1 NA 14 5 9 NA
## 8 #4/2/95/3-3 1 4 13 6 8 31
## 9 #4/2/95/3-3 1 4 13 7 9 33
## 10 #2/2/95/3-2 1 4 NA 8 10 NA
## # ... with 303 more rows
Arranging is not so exciting, but it is kinda helpful.
arrange(litters_data, group, pups_born_alive)
## # A tibble: 49 x 8
## group litter_number gd0_weight gd18_weight gd_of_birth
## <chr> <chr> <dbl> <dbl> <int>
## 1 Con7 #85 19.7 34.7 20
## 2 Con7 #5/4/2/95/2 28.5 44.1 19
## 3 Con7 #5/5/3/83/3-3 26.0 41.4 19
## 4 Con7 #4/2/95/3-3 NA NA 20
## 5 Con7 #2/2/95/3-2 NA NA 20
## 6 Con7 #1/2/95/2 27.0 42.0 19
## 7 Con7 #1/5/3/83/3-3/2 NA NA 20
## 8 Con8 #2/2/95/2 NA NA 19
## 9 Con8 #1/6/2/2/95-2 NA NA 20
## 10 Con8 #3/6/2/2/95-3 NA NA 20
## # ... with 39 more rows, and 3 more variables: pups_born_alive <int>,
## # pups_dead_birth <int>, pups_survive <int>
Example:
litters_data =
read_csv("./data/FAS_litters.csv", col_types = "ccddiiii") %>%
clean_names() %>%
select(-pups_survive) %>%
mutate(
wt_gain = gd18_weight - gd0_weight,
group = tolower(group))
Example with pups data (from Junting):
read_csv("./data/FAS_pups.csv", col_types = "ciiiii") %>%
clean_names() %>%
filter(., sex == 1) %>%
select(., -pd_ears) %>%
mutate(., pd_pivot_logic = pd_pivot > 7)
## # A tibble: 155 x 6
## litter_number sex pd_eyes pd_pivot pd_walk pd_pivot_logic
## <chr> <int> <int> <int> <int> <lgl>
## 1 #85 1 13 7 11 FALSE
## 2 #85 1 13 7 12 FALSE
## 3 #1/2/95/2 1 13 7 9 FALSE
## 4 #1/2/95/2 1 13 8 10 TRUE
## 5 #5/5/3/83/3-3 1 13 8 10 TRUE
## 6 #5/5/3/83/3-3 1 14 6 9 FALSE
## 7 #5/4/2/95/2 1 14 5 9 FALSE
## 8 #4/2/95/3-3 1 13 6 8 FALSE
## 9 #4/2/95/3-3 1 13 7 9 FALSE
## 10 #2/2/95/3-2 1 NA 8 10 TRUE
## # ... with 145 more rows