获取R中的分组计数-抛出错误-不是向量?

获取R中的分组计数-抛出错误-不是向量?,r,dplyr,R,Dplyr,我有一个data.frame,头部如下所示: > head(movies_by_yr) Source: local data frame [6 x 4] Groups: YR_Released [6] Movie_Title YR_Released Rating Num_Reviews <fctr> <fctr> <dbl> <int> 1 The Sh

我有一个data.frame,头部如下所示:

> head(movies_by_yr)

Source: local data frame [6 x 4]
Groups: YR_Released [6]

               Movie_Title YR_Released Rating Num_Reviews
                <fctr>      <fctr>  <dbl>       <int>
1 The Shawshank Redemption        1994    9.2     1773755
2            The Godfather        1972    9.2     1211083
3   The Godfather: Part II        1974    9.0      832342
4          The Dark Knight        2008    8.9     1755341
5             12 Angry Men        1957    8.9      477276
6         Schindler's List        1993    8.9      909358
mycars <- mtcars
mycars <- group_by(mycars, cyl)
summarise(mycars, total = NROW(cyl))
#> # A tibble: 3 x 2
#>     cyl total
#>   <dbl> <int>
#> 1     4    11
#> 2     6     7
#> 3     8    14
现在我们来讨论这个问题。我们的目标是按YR_发布进行分组,这样我们就可以按年份获得记录数。我原以为下一步会是这样,但它会抛出一个错误,我不确定我做错了什么:

summarise(movies_by_yr, total = nrow(YR_Released))
我选择
nrow
,因为一旦有了分组,该分组中的行数应该是计数。有人能指出我做错了什么吗

引发的错误是:

Error in summarise_impl(.data, dots) : Not a vector
但我知道这个data.frame是由一系列向量创建的,无论它与类中的示例代码和我的尝试有什么不同,我只是没有看到它。希望有人能回答这个问题……

试试这个(我想这就是你想要的)


让我们使用每个人都拥有的数据,比如内置的
mtcars
data.frame,让它对未来的读者更有用

如果您查看文档
?nrow
,您将看到该函数是在data.frame或matrix上调用的。您正在一列上调用它,
YR\u Released
。函数
nrow
有一个特定于向量的变体,称为(令人困惑的)
nrow
——如果您尝试这样做,它可能会起作用

但即使是这样,dplyr计数行的方法也是使用
n()
,如下所示:

> head(movies_by_yr)

Source: local data frame [6 x 4]
Groups: YR_Released [6]

               Movie_Title YR_Released Rating Num_Reviews
                <fctr>      <fctr>  <dbl>       <int>
1 The Shawshank Redemption        1994    9.2     1773755
2            The Godfather        1972    9.2     1211083
3   The Godfather: Part II        1974    9.0      832342
4          The Dark Knight        2008    8.9     1755341
5             12 Angry Men        1957    8.9      477276
6         Schindler's List        1993    8.9      909358
mycars <- mtcars
mycars <- group_by(mycars, cyl)
summarise(mycars, total = NROW(cyl))
#> # A tibble: 3 x 2
#>     cyl total
#>   <dbl> <int>
#> 1     4    11
#> 2     6     7
#> 3     8    14

一旦我将“movies\u by_year”更正为“movies\u by_yer”以匹配我的原始代码,这将返回问题的正确答案,因此,谢谢。如果这是一个真实的问题,我会解决的,但我相信我应该使用小组讨论和总结,就像我们在课堂上做的训练练习一样。关于如何修复原始方法(即使它可能不是最好的方法)的任何见解?count()在我的原始代码(数据帧)的上下文中不起作用。按照您的模型,尝试了:my_df%>%count(my_列),它抛出了大量错误。我不知道为什么。它看起来像一个elegenat解决方案。你以前的解决方案是这个问题所要求的——有效,但现在我正在努力解决如何对其进行排序或从计数中提取最大值的问题。谢谢你带我走了这么远。非常有帮助。问题实际上需要最高计数的年份。多亏了你,我才刚到那里。一旦我设置了我的代码来为您的第一个答案建模,那么就只需在数据框中存储和索引与count列的max值相等的行。。。我的代码是这样的:movies\u by\u yr我想
count()
需要一个字符串参数。这是有效的:
mtcars%>%count(“cyl”)
mtcars%>%summary(count(cyl))
但后者留下了难看的列名。
mtcars %>%
  count(cyl)