Я, должно быть, что-то упускаю в этом вопросе, потому что это выглядит просто, и у него уже слишком много времени.
Скажем, у нас есть столбец порядкового множителя в кадре данных.Нам нужен новый столбец путем удаления или увеличения исходного столбца на один уровень или категорию.Какой самый быстрый способ?
Данные
col_string <- as.character(c(1:5))
col_factor <- factor(col_string, levels = as.character(c(1:8)), ordered = TRUE)
Желаемое решение:
col_solution <- c(8,1,2,3,4)
df <- cbind(col_string, col_factor, col_solution)
df
col_string col_factor col_solution
[1,] "1" "1" "8"
[2,] "2" "2" "1"
[3,] "3" "3" "2"
[4,] "4" "4" "3"
[5,] "5" "5" "4"
Как в кодеМогу ли я сказать R:
col_solution <- shift down one level of the element in col_factor
изменить для уточнения:
В столбце col_factor
есть 8 категорий, хотя есть только представление из 5 из них.Категории упорядочены как 1-2-3-4-5-6-7-8.Если один элемент находится в категории 1, и мы хотим перейти на одну категорию, мы перейдем к категории 8.