I have a dataset of which I want to create a new column with names small
, medium
and large
, these will be dependent on the values of the year 2014
. where 1:5
= small
and 6:9
= medium
whilst 10:14
= large
. The values will be yes
or no
, dependning on the value of the year.
This is how my dataset looks like:
A tibble: 330 x 4
LOC_ID season `2014` `2015`
<chr> <chr> <int> <int>
1 LOC1002793 Summer 12 NA
2 LOC1002793 Winter 6 NA
3 LOC1004001 Winter NA 1
4 LOC1004488 Winter 8 NA
5 LOC1012349 Summer 12 12
6 LOC1012349 Winter 11 12
7 LOC1019836 Summer 14 10
8 LOC1019836 Winter 12 12
9 LOC1022032 Winter NA 1
10 LOC1034172 Summer 13 11
# ... with 320 more rows
The counts are split into years 2014 and 2015, these counts represent the amount of times in a year, within the weeks of that season, that the locality id made an observation (in this case the observations are birds).
I want something like this (I will be separating the 2014/2015 dataframes into two dataframes, so doing it for one year I can then replicate the code for the other):
A tibble: 330 x 4
LOC_ID season `2014` `2015` small medium large
<chr> <chr> <int> <int>
1 LOC1002793 Summer 12 NA no no yes
2 LOC1002793 Winter 6 NA no yes no
3 LOC1004001 Winter NA 1
4 LOC1004488 Winter 8 NA no yes no
5 LOC1012349 Summer 12 12 no no yes
6 LOC1012349 Winter 11 12 . . .
7 LOC1019836 Summer 14 10 . . .
8 LOC1019836 Winter 12 12
9 LOC1022032 Winter NA 1
10 LOC1034172 Summer 13 11
# ... with 320 more rows
This is what I have tried:
#replicate the years and name those replicates test1 = 2014 and test2 = 2015
A tibble: 330 x 6
LOC_ID season test1 `2014` test2 `2015`
<chr> <chr> <int> <int> <int> <int>
1 LOC1002793 Summer 12 12 NA NA
2 LOC1002793 Winter 6 6 NA NA
3 LOC1004001 Winter NA NA 1 1
4 LOC1004488 Winter 8 8 NA NA
5 LOC1012349 Summer 12 12 12 12
6 LOC1012349 Winter 11 11 12 12
7 LOC1019836 Summer 14 14 10 10
8 LOC1019836 Winter 12 12 12 12
9 LOC1022032 Winter NA NA 1 1
10 LOC1034172 Summer 13 13 11 11
# ... with 320 more rows
ld <- d %>% mutate(test1 = recode(test1, `1:5` = 'low', `6:9` = 'medium', `10:14` = 'high')) %>% pivot_wider(names_from = test1, values_from = '2014')
Reproducible code:
structure(list(LOC_ID = c("LOC1002793", "LOC1002793", "LOC1004001",
"LOC1004488", "LOC1012349", "LOC1012349", "LOC1019836", "LOC1019836",
"LOC1022032", "LOC1034172", "LOC1034172", "LOC1039789", "LOC1040038",
"LOC1040038", "LOC1047222314194", "LOC1047222314194", "LOC1048553080056",
"LOC1049318", "LOC1049318", "LOC1049970899816", "LOC1049970899816",
"LOC1066628", "LOC1066628", "LOC1071566", "LOC1071566", "LOC1071569",
"LOC1071569", "LOC1073191", "LOC1073191", "LOC1073423", "LOC1073423",
"LOC1079978", "LOC1079978", "LOC1083442", "LOC1083442", "LOC1086293",
"LOC1086293", "LOC1087213", "LOC1087213", "LOC1088795", "LOC1088795",
"LOC1122438", "LOC1122438", "LOC1139319877260", "LOC1139319877260",
"LOC1153084541859", "LOC1153084541859", "LOC1155749", "LOC1163128",
"LOC1163128", "LOC1234081", "LOC1234081", "LOC1289919", "LOC1289919",
"LOC1294966340210", "LOC1300602115", "LOC1300602115", "LOC1300602122",
"LOC1300602122", "LOC1300602135", "LOC1300602135", "LOC1300602161",
"LOC1300602161", "LOC1300602184", "LOC1300602184", "LOC1300602196",
"LOC1300602196", "LOC1300602243", "LOC1300602243", "LOC1300602306",
"LOC1300602306", "LOC1300604079", "LOC1300604079", "LOC1300604135",
"LOC1300604135", "LOC1300604635", "LOC1300604635", "LOC1300604699",
"LOC1300604699", "LOC1300604713"), season = c("Summer", "Winter",
"Winter", "Winter", "Summer", "Winter", "Summer", "Winter", "Winter",
"Summer", "Winter", "Winter", "Summer", "Winter", "Summer", "Winter",
"Summer", "Summer", "Winter", "Summer", "Winter", "Summer", "Winter",
"Summer", "Winter", "Summer", "Winter", "Summer", "Winter", "Summer",
"Winter", "Summer", "Winter", "Summer", "Winter", "Summer", "Winter",
"Summer", "Winter", "Summer", "Winter", "Summer", "Winter", "Summer",
"Winter", "Summer", "Winter", "Winter", "Summer", "Winter", "Summer",
"Winter", "Summer", "Winter", "Winter", "Summer", "Winter", "Summer",
"Winter", "Summer", "Winter", "Summer", "Winter", "Summer", "Winter",
"Summer", "Winter", "Summer", "Winter", "Summer", "Winter", "Summer",
"Winter", "Summer", "Winter", "Summer", "Winter", "Summer", "Winter",
"Summer"), `2015` = c(NA, NA, 1L, NA, 12L, 12L, 10L, 12L, 1L,
11L, 12L, NA, 2L, 5L, 11L, 9L, NA, 5L, 7L, 13L, 12L, 9L, 11L,
9L, 11L, 11L, 7L, 7L, 12L, 8L, 12L, 12L, 7L, 13L, 12L, 12L, 12L,
4L, 8L, 7L, 10L, 7L, 4L, 12L, 12L, 2L, 5L, NA, NA, 9L, 12L, 7L,
11L, 4L, 8L, 11L, 12L, 13L, 12L, 10L, 12L, 12L, 12L, 11L, 4L,
13L, 12L, 12L, 12L, 10L, 10L, 11L, 10L, 12L, 11L, 9L, 11L, 9L,
10L, 13L)), row.names = c(NA, -80L), class = c("tbl_df", "tbl",
"data.frame"))