将文本变量分配给r中的数字字段

问题描述 投票:0回答:1

[大家好,我正在尝试为一列具有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"
)

As you can see, my above code just essentially copied the values from the pre-existing "Quadrant" field to the new field "quadID" that I created. Not sure why exactly, but my understanding of the case_when function is also a bit hazy

r dataframe text dplyr numeric
1个回答
0
投票

如果是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")))
© www.soinside.com 2019 - 2024. All rights reserved.