Присвоение текстовых переменных числовому полю в r - PullRequest
1 голос
/ 13 апреля 2020

Привет всем. Я пытаюсь назначить категории диапазону значений в столбце с диапазоном значений 365-433. Я попытался использовать функцию case_when и изобразил синтаксис из документации как мог, но, похоже, не дал желаемого результата. Для пояснения я пытаюсь обозначить точки данных со значениями "Quadrant" между 365-422 как "Transit", значениями "Quadrant" == до 424 как "ZOI" и значениями "Quadrant" == до 423 И между 425-433 как "Смежный". Последнее немного сложнее, потому что я фокусируюсь на этом одном полигоне 424, поэтому, если у кого-то есть понимание того, как я могу объяснить это странное наложение в условиях, я был бы очень признателен.

Спасибо!

sightingsData$quadID <- sightingsData$Quadrant
case_when(
  sightingsData$Quadrant %% 422 <= 0 ~ "Transit"
  sightingsData$Quadrant %% 424 == 0 ~ "ZOI"
  sightingsData$Quadrant %% 423 >= 0 ~ "Adjacent"
)

As you can see, my above code just essentially copied the values from the pre-existing

1 Ответ

0 голосов
/ 13 апреля 2020

Если это between, то мы можем изменить код на

library(dplyr)
sightingsData <- sightingsData %>%
        mutate(quadID = case_when(Quadrant == 424 ~ "ZOI",
         Quadrant == 323 |between(Quadrant, 325, 433) ~ "Transit",

                   TRUE ~ "Adjacent"))

Кроме того, для нескольких групп, опция cut

sightingsData %>%
      mutate(quadID, cut(Quadrant, breaks = c(365, 422, 433, Inf), 
            labels = c("Transit", "ZOI", "Adjacent")))
...