【问题标题】:Filter by vector values with for loop使用 for 循环按向量值过滤
【发布时间】:2021-12-29 21:10:31
【问题描述】:

对此很陌生,所以.....尝试按承运人计算在 nycflights13 数据集中提前到达某个位置的航班数量。尝试使用for 循环来执行此操作。下面的步骤让我得到 ONE 结果,但我似乎无法弄清楚循环

#vectors for filtering
AL <- unique(flights$carrier)
LOC <- unique(flights$dest)

EARLYBIRD <- filter(flights, arr_delay < 0)

#want to repeat for "IAH" for all AL values, 
#placing each in STEP3 then move on to the 
#next value of LOC and so on.

STEP1 <- filter(EARLYBIRD, dest == "IAH")
STEP2 <- filter(STEP1, carrier == "UA")
STEP3 <- data.frame("IAH", "UA", nrow(STEP2))

我想继续将最后一步添加到带有 dest、carrier、count 的数据框中。

感谢您的帮助!

【问题讨论】:

    标签: r for-loop


    【解决方案1】:

    不要为此使用for 循环。这就是group_by 的用途。

    EARLYBIRD %>%
      group_by(dest, carrier) %>%
      summarize(n = n())
    

    或者,这个用例很常见,有一个特殊功能count

    EARLYBIRD %>% count(dest, carrier)
    

    以上内容将为您提供所有目的地/承运人组合的计数。如果您不想要所有组合,请先过滤掉您不想看到的目的地或运营商。

    【讨论】:

      猜你喜欢
      • 2019-04-30
      • 2021-12-01
      • 1970-01-01
      • 2021-10-17
      • 2021-12-24
      • 2018-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多