创建因子:使用 cut() 函数时出错

Creating a factor: error using the cut() function

我在尝试创建一个指示空气质量指数是否大于 50 超过 100 天的新变量时收到此 Error in mutate_impl(.data, dots) : Evaluation error: lengths of 'breaks' and 'labels' differ. 错误。基本上,我想创建一个 "yes" 或 "no" 和标签。

我观看了有关 cut() 函数的 YouTube 视频。我尝试了 breaks 参数的几种不同变体。我觉得好像很接近,但我不明白错误。中断应从最小值开始并恰好在 100 结束。任何超过 100 到最大值的值都应该得到 "yes"

您应该使用 cut 函数使用 mutate_at。示例数据示例如下。

计数已减少到 4,以将样本数据中的标签视为 "Yes"。在实际实现中可以保持为100。

df <- read.table(text = "AQI Date.Local year Latitude Longitude City.Name State.Name 
 38 01-01 2005 30.5 -87.9 Fairhope Alabama 
 56 01-04 2005 30.5 -87.9 Fairhope Alabama 
 30 01-07 2005 30.5 -87.9 Fairhope Alabama 
 36 01-10 2005 30.5 -87.9 Fairhope Alabama 
 14 01-13 2005 30.5 -87.9 Fairhope Alabama 
 32 01-16 2005 30.5 -87.9 Fairhope Alabama
 60 01-16 2005 30.5 -97.9 NewCity Alabama
 70 01-16 2005 30.5 -97.9 NewCity Alabama
 80 01-16 2005 30.5 -97.9 NewCity Alabama
 70 01-16 2005 30.5 -97.9 NewCity Alabama
 55 01-16 2005 30.5 -97.9 NewCity Alabama
                 ", header = T, stringsAsFactors = F)

library(tidyverse)

df %>% 
  group_by(Latitude, Longitude, year) %>%
  filter(AQI > 50) %>%
  summarise(count = n()) %>%
  select(year, Latitude, Longitude, count) %>%
  mutate_at(vars(count), cut, 
            breaks = c(min(.), 4, max(.)), labels = c("No", "Yes"))  

#   year Latitude Longitude count 
#  <int>    <dbl>     <dbl> <fctr>
#1  2005     30.5     -97.9 Yes   
#2  2005     30.5     -87.9 No