Поскольку вы передаете nrow
имени столбца, которое NULL
. См. Например:
nrow(mtcars$mpg)
#NULL
nrow
принимает кадр данных, а не вектор:
nrow(mtcars)
#[1] 32
Однако есть также функция NROW
, которая принимает вектор, поэтому здесь вы вместо этого можно использовать:
library(dplyr)
gapminder %>%
filter(year %in% c(2010, 2015) & !is.na(population)) %>%
group_by(year) %>%
summarise(weight = NROW(population))
Но если вы используете dplyr
и хотите подсчитать количество строк в каждой группе, в экосистеме dplyr
для них есть несколько выделенных функций, например:
gapminder %>%
filter(year %in% c(2010, 2015) & !is.na(population)) %>%
group_by(year) %>%
summarise(weight =n())
# A tibble: 2 x 2
# year weight
# <int> <int>
#1 2010 185
#2 2015 185
ИЛИ с count
:
gapminder %>%
filter(year %in% c(2010, 2015) & !is.na(population)) %>%
count(year)