Мы извлекаем year
из столбца «Пуск», приводим factor
преобразованный год к integer
library(dplyr)
library(lubridate)
df1 %>%
mutate(YearValue = as.integer(factor(year(dmy(Start)), levels = 2003:2010))) %>%
rename(Year = Start)
# Year Apps YearValue
#1 01/01/2003 10 1
#2 06/05/2006 42 4
#3 23/01/2004 23 2
#4 30/06/2010 34 8
#5 11/06/2006 23 4
#6 21/01/2005 45 3
#7 12/07/2004 3 2
#8 03/01/2010 76 8
#9 01/01/2009 34 7
Как @Parfait упоминается в комментариях,base R
эквивалент будет
within(df, {
Start <- as.Date(Start, format="%d/%m/%Y")
Year <- as.integer(format(Start, format="%Y"))
YearValue <- as.integer(factor(Year, levels = 2003:2010))
rm(Year)
})
data
df1 <- structure(list(Start = c("01/01/2003", "06/05/2006", "23/01/2004",
"30/06/2010", "11/06/2006", "21/01/2005", "12/07/2004", "03/01/2010",
"01/01/2009"), Apps = c(10L, 42L, 23L, 34L, 23L, 45L, 3L, 76L,
34L)), class = "data.frame", row.names = c(NA, -9L))