[大家好,我正在尝试为一列具有365-433范围内的值的值范围分配类别。我尝试使用case_when函数,并尽可能地模仿了文档中的语法,但似乎没有所需的输出。为了澄清起见,我尝试将365-422之间的“象限”值指定为“运输”,“象限”的值==至424的“ ZOI”和“象限”的值==至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"
)
如果是between
,我们可以将代码更改为
library(dplyr)
sightingsData %>%
mutate(quadID = case_when(between(Quadrant, 365, 422) ~ "Transit",
between(Quadrant, 423, 433) ~ "ZOI",
TRUE ~ "Adjacent"))
此外,对于多个分组,选项为cut
sightingsData %>%
mutate(quadID, cut(Quadrant, breaks = c(-Inf, 422, 433), labels = c("Transit", "ZOI", "Adjacent")))