簡體   English   中英

如何計算分組行/觀察的數量?

[英]How do I count the number of grouped rows/observations?

如何計算分組行/觀察的數量?

我知道這應該是一個簡單的問題,但我很難弄清楚。

我正在使用具有年、月、日和個別航班的flights dataframe。

我想總結/計算每天的航班數量。

什么'我試過......

flights %>% 
    group_by(year, month, day, flight) %>%
    summarize(n())

這給出了每個航班的數量

special_days2 <- flights %>%
    group_by(year, month, day) %>% 
    count(flight)

這給了我與使用summarize(n())相同的功能。 但我很困惑。 我按年、月、日和使用的航班計數分組,所以它計算航班內唯一觀察的數量,對嗎?

有沒有辦法計算按年、月、日分組的航班數量?

flights %>% 
    group_by(year, month, day) %>%
    summarize(n())

這確實給了我每天的計數,但它並不特定於航班列。 所以我不得不假設每天的行數與每天的航班數相對應。

有沒有其他方法可以問自己“每天有多少航班”這個問題? 使用按其他列分組的航班列? 當我嘗試使用 nrows() 來計算行數時,

special_days3 <- flights %>%
      group_by(year, month, day) %>% 
      nrow(flight)

^ 這給了我一個錯誤,

special_days3 <- flights %>%
      group_by(year, month, day, flight) %>% 
      nrow()

剛剛給了我總行數? 我很困惑,因為 nrow 似乎是正確的命令,因為它計算行數但它不起作用。

感謝您的指導!


同樣關於使用 summarise、count 和 n() 我的理解是,summarize() 包含 select 函數。 你怎么知道這些是哪些功能? 我知道它們是統計函數和 n(),但除此之外呢?

相反,某些函數必須由summary 提供,例如n()。 還有其他人嗎?

我試圖解釋為什么你每次嘗試都會得到 output:

flights %>% group_by(year, month, day, flight) %>% summarize(n())

在這里,您按yearmonthday (到目前為止一切順利)flightflight是獨一無二的,這就是為什么您會得到“每個航班的數量”)分組

special_days2 <- flights %>% group_by(year, month, day) %>% count(flight)

在這里,您按yearmonthday分組(同樣,到目前為止一切都很好),然后您計算唯一的flight的唯一值,因此您得到與上面相同的 output

flights %>% group_by(year, month, day) %>% summarize(n())

甚至更好:

flights %>% group_by(year, month, day) %>% summarize(N = n())

或者

flights %>% group_by(year, month, day) %>% count()

為您提供您想要的,即您的假設“每天的行數將對應於每天的航班數”是正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM