library(dplyr)
distinct(mtcars, mpg)
显示mtcars中mpg类的唯一出现。n_distinct(mtcars, mpg)
对它们进行计数并显示正确的计数32
。distinct(mtcars, cyl)
显示mtcars中柱面类的唯一出现。n_distinct(mtcars, cyl)
产生错误。为什么它不像上面的mpg示例那样起作用?我得到这个错误的错误...对象cyl在mtcars数据框中,我向您保证。Error in n_distinct_multi(list(...), na.rm) : object 'cyl' not found
最佳答案
dplyr::n_distinct()
函数不是像mutate()
,filter()
等的表动词。它的...
参数应该是“值的向量”(根据官方文档)。
所以当您说dplyr::n_distinct(mtcars, mpg)
时,实际上是什么情况
是第一个参数mtcars
的唯一值正在计算。
由于它具有32个不同的行,因此值为32
。在最后一个示例中,您
提供,因为没有被称为cyl
的对象,所以无法识别cyl
-识别mpg
的原因是mpg
引用了
数据集ggplot2::mpg
,而不是同名的mtcars
列!
要了解我的意思,请运行以下命令:
dplyr::n_distinct(mtcars) # 32
dplyr::n_distinct(ggplot2::mpg) # 225
dplyr::n_distinct(mtcars, mpg) # 32
dplyr::n_distinct(mtcars, ggplot2::mpg) # 32
如果要计算
mtcars$cyl
和mtcars$mpg
中唯一值的数量,然后只需使用:
dplyr::n_distinct(mtcars$cyl) # 3
dplyr::n_distinct(mtcars$mpg) # 25
一个棘手的人!
关于r - R计数的差异数不一致,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48612389/