分组数据并将函数应用于分组数据

Grouping data and applying functions to the grouped data

我正在尝试根据日期(一天内进行的所有观察)对数据进行分组,并应用一个函数来计算编号。分组数据中的观察结果。

我的代码是:

Library(ggplot2)
library(lubridate)
library(tidyverse)


cmsaf_data <- read.csv("tmy_era_25.796_45.547_2005_2014.csv",
             skip = 16, header = T)

data <- cmsaf_data %>%
  mutate(time = mdy_hm(Date_Time),
         date = date(time), months = month(date))


data <- subset(data,Global.horizontal.irradiance..W.m2.>0) # subsetting based upon values of GHI > 0

year(data$date) <- 2007

summarised <- data %>%
  group_by(date) %>% summarise(hours = nrow(data))

在此代码的最后一行,我尝试按日期对数据进行分组并计算编号。观察结果,即现在我数据中的行,但结果是,而不是没有。特定组的行,我没有。整个数据的行数。

之前我曾使用过相同的代码并将求和函数应用于我的分组数据并且它运​​行得非常好!现在,当我尝试应用 nrow() 函数来计数时。行数,此代码无效。

我不确定自己犯了什么错误。如果有任何可以进行的更正或我可以遵循的方法,请指导我!

Link 我的数据是: link

提前致谢!

下面是nrow(data)n()分组数据框后的对比。要计算每个组中的行数,我们应该使用 n(),而 nrow(data) returns 数据框的整个行号。

data %>%
  group_by(date) %>% summarise(hours = nrow(data))
# # A tibble: 365 x 2
#    date       hours
#    <date>     <int>
#  1 2007-01-01  4272
#  2 2007-01-02  4272
#  3 2007-01-03  4272
#  4 2007-01-04  4272
#  5 2007-01-05  4272
#  6 2007-01-06  4272
#  7 2007-01-07  4272
#  8 2007-01-08  4272
#  9 2007-01-09  4272
# 10 2007-01-10  4272
# # ... with 355 more rows

data %>%
  group_by(date) %>% summarise(hours = n())
# # A tibble: 365 x 2
#   date       hours
#    <date>     <int>
#  1 2007-01-01    10
#  2 2007-01-02    10
#  3 2007-01-03    10
#  4 2007-01-04    10
#  5 2007-01-05    10
#  6 2007-01-06    10
#  7 2007-01-07    10
#  8 2007-01-08    10
#  9 2007-01-09    10
# 10 2007-01-10    10
# # ... with 355 more rows