Группировка числовых значений по диапазонам с вырезом

Я сделал выборку растровых данных ASPECT в диапазоне от 0 до 360, и теперь я хочу сгруппировать эти данные по направлениям (север, юг, восток, восток и т. Д.).

Я нашел функцию вырезания и хотел попробовать ее, но, похоже, что-то не работает. Для моих перерывов у меня есть 10 диапазонов, но я все время получаю сообщение об ошибке, что длина перерывов и меток различается. Там написано, что продолжительность моих перерывов - 20, и я не знаю почему. Любой совет?

ForestType$Aspect<-cut(ForestType$Aspect,
                           breaks= c(c(-2,-1), c(0,22.5),c(22.51,67.5), c(67.51,112.5),c(112.51,157.5), c(157.51,202.5), c(202.51,247.5), c(247.51,292.5),c(292.51,337.5),c(337.51,360)), 
                           labels= c("Flat", "North", "Northeast", "East","Southeast", "South", "Southwest", "West","Northwest", "North"), right=F)

person Andrew Budsock    schedule 09.03.2017    source источник


Ответы (1)


Перерывы должны быть непрерывными. В вашем случае cut рассматривайте промежутки между вашими векторами (например, -1; 0) как разрывы, для которых необходимы метки. Обычно разрывы выглядят так: c(-2,-1, 0,22.5, 67.5,112.5,157.5,202.5,247.5,292.5,337.5,360)

person Gregory Demin    schedule 09.03.2017
comment
Я все еще в замешательстве. Как мне вырезать? Я попытался поставить точки с запятой между векторами, но получаю сообщение об ошибке. Если я просто введу полную строку значений, мои метки снова не совпадают. Любые идеи? - person Andrew Budsock; 13.03.2017
comment
@AndrewBudsock cut делайте постоянные интервалы. Например, cut(runif(10), c(0.2, .25, .5, 1)) дает переменную с тремя интервалами - (0,2,0,25], (0,25,0,5], (0,5,1]. Значения, которые находятся вне этих интервалов, становятся NA. - person Gregory Demin; 13.03.2017