如何在R中基於一個分類列查詢多個分類列的唯一值個數?


要根據一個分類列查詢多個分類列的唯一值個數,我們可以按照以下步驟進行:

  • 首先,建立一個數據框。
  • 使用`summarise_each`函式和`n_distinct`函式來查詢基於分類列的唯一值個數。

建立資料框

讓我們建立一個如下所示的資料框:

 線上演示

x<-
sample(c("First","Second","Third","Fourth","Fifth","Sixth","Seventh","Eighth","Nineth",
"Tenth"),25,replace=TRUE)
C1<-sample(LETTERS[1:4],25,replace=TRUE)
C2<-sample(letters[1:4],25,replace=TRUE)
df<-data.frame(x,C1,C2)
df

執行上述指令碼後,會生成以下輸出(由於隨機化,此輸出會在您的系統上有所不同):

      x  C1 C2
1 Seventh B a
2 Third   C c
3 Nineth  A a
4 Third   D c
5 Seventh D d
6 Fourth  A c
7 Seventh B a
8 Third   D a
9 Seventh D c
10 First  A a
11 Eighth D d
12 Tenth  C b
13 Fifth  A c
14 Second A c
15 Fourth B d
16 Nineth C b
17 Fifth D a
18 First A a
19 Tenth B a
20 Nineth A b
21 Third B b
22 Tenth A a
23 Fifth A a
24 Sixth D b
25 First A c

查詢基於分類列的唯一值個數

使用dplyr包的`n_distinct`函式和`summarise_each`函式來查詢基於x的C1和C2中的唯一值個數:

x<-
sample(c("First","Second","Third","Fourth","Fifth","Sixth","Seventh","Eighth","Nineth",
"Tenth"),25,replace=TRUE)
C1<-sample(LETTERS[1:4],25,replace=TRUE)
C2<-sample(letters[1:4],25,replace=TRUE)
df<-data.frame(x,C1,C2)
library(dplyr)
df %>% group_by(x) %>% summarise_each(funs(n_distinct(.)))

輸出

# A tibble: 10 x 3
    x     C1 C2
   <chr> <int> <int>
1  Eighth  1    1
2  Fifth   2    2
3  First   1    2
4  Fourth  2    2
5  Nineth  2    2
6  Second  1    1
7  Seventh 2    3
8  Sixth   1    1
9  Tenth   3    2
10 Third   3    3

更新於:2021年8月13日

286 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.