I have a dataframe with a column of values, and I want to create a new column splitting these values into cohorts depending on where they fall within a given vector of numbers.
So for example lets say I have the following dataframe
df <- data.frame(item = c('a', 'b', 'c', 'd', 'e', 'f'),
value = c(5 , 14 , 3 , 22 , 30 , 0))
i.e.
item value
1 a 5
2 b 14
3 c 3
4 d 22
5 e 30
6 f 0
then I want to split the value column into cohorts depending on its value and where the value falls in a vector, and create a new column showing these cohort. Its probably easier to explain using an example vector
e.g. say I had the vector
vec <- c(5, 10, 25)
Item 'a' would fall between 5 and 10 (lets say the lower bound is >= and upper is <), item 'b' between 10 and 25, item 'c' is less than 5 etc..., and my new dataframe would look something like this
item value cohort
1 a 5 5-10
2 b 14 10-25
3 c 3 -5
4 d 22 10-25
5 e 30 20-
6 f 0 -5
Does anyone know the quickest and best way of doing this?
Thanks in advance