计算数据框中每列唯一值的长度

时间:2019-03-25 21:10:31

标签: r

我在r中有一个数据框,我需要计算每列的唯一值的数量。一些列是数字和因子类型。帮助。

4 个答案:

答案 0 :(得分:4)

这将使用基数R:

minifun <- function(col) {length(unique(col))}
lapply(iris, minifun)

答案 1 :(得分:4)

比方说,您的数据存储在名为df的数据框中。

您可以使用

在每一列中获取唯一元素
sapply(df, unique)

您可以使用来获取每一列中唯一元素的数量

sapply(sapply(df, unique), length)

iris数据集为例:

df = iris
> sapply(sapply(df, unique), length)
Sepal.Length  Sepal.Width Petal.Length  Petal.Width      Species 
          35           23           43           22            3 

答案 2 :(得分:3)

为完整起见,请使用data.table解决方案

as.data.table(iris)[, lapply(.SD, uniqueN)]
#   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#1:           35          23           43          22       3

答案 3 :(得分:2)

您可以将n_distinctmap配合使用来实现此目的。这是一个示例:

library(tidyverse) 
iris %>% map(n_distinct)