У меня есть переменная этого года, и я хочу изменить ее на категориальную переменную с 3 уровнями. Здесь я использую функцию уровней, которая очень болезненна.
traintest$YearBuilt <- as.factor(traintest$YearBuilt)
levels(traintest$YearBuilt)[levels(traintest$YearBuilt)%in%c(1872,1875,1879,1880,1882,
1885,1890,1892,1893,1895,
1896,1898,1900,1901,1902,
1904,1905,1906,1907,1908,
1910,1911,1912,1913,1914,
1915,1916,1917,1918,1919,
1920,1921,1922,1923,1924,
1925,1926,1927,1928,1929,
1930,1931,1932,1934,1935,
1936,1937,1938,1939,1940,
1941,1942,1945,1946,1947,
1948,1949)] <- "Before1950"
levels(traintest$YearBuilt)[levels(traintest$YearBuilt)%in%c(1950,1951,1952,1953,1954,
1955,1956,1957,1958,1959,
1960,1961,1962,1963,1964,
1965,1966,1967,1968,1969,
1970,1971,1972,1973,1974,
1975,1976,1977,1978,1979,
1980,1981,1982,1983,1984,
1985,1986,1987,1988,1989,
1990,1991,1992,1993,1994,
1995,1996,1997,1998,1999)] <- "Between1950-2000"
levels(traintest$YearBuilt)[levels(traintest$YearBuilt)%in%c(2000,2001,2002,2003,2004,
2005,2006,2007,2008,2009,
2010)] <- "After2000"
Я пытался использовать функцию вырезания, но она не совсем сработала, в основном все переменные были отнесены к первой категории, и две другие категории стали нулями.
Есть ли более простой способ, которым я могу это сделать?