如何获得独特的价值

时间:2018-02-09 12:12:31

标签: r

我想知道唯一值的数量,2,3或更多值的数量

x
  name   var
1    a  abc1
2    b  abc1
3    c  abc2
4    d  abc2
5    e  abc2
6    f accd1
7    g baac1
y <- data.frame(table(x$var))
y
   Var1 Freq
1  abc1    2
2  abc2    3
3 accd1    1
4 baac1    1

如果使用table(),我可以看到其中有多少Var1。 但是,我想知道的是......有多少独特的价值。 (和2,3或更多)

像这样。

unique value : 2   #(accd1, baac1)
     2 value : 1   #(abc1)
   3 or more : 1   #(abc2)

2 个答案:

答案 0 :(得分:0)

使用tidyverse函数,您可以尝试类似

的内容
df %>%
  group_by(var) %>%
  mutate( cnt = n()) %>%
  ungroup() %>%
  group_by(cnt) %>%
  mutate(freq = n()) %>%
  select(cnt, freq) %>%
  unique()

答案 1 :(得分:0)

你可以这样做:

freq <- data.frame(table(x$var))$Freq
table(ifelse(freq >= 3, "3 and more", freq))

> table(ifelse(freq >= 3, "3 and more", freq))

1          2 3 and more 
2          1          1

或使用dplyr库:

#install.packages("dplyr")
library(dplyr)
x %>%
  count(var) %>% 
  mutate(values = ifelse(n >= 3, "3 and more", n)) %>%
  count(values)

# A tibble: 3 x 2
  values        nn
  <chr>      <int>
1 1              2
2 2              1
3 3 and more     1