在 R 資料框列中查詢存在 n 次的值。


要查詢在 R 資料框列中存在 n 次的值,我們首先需要使用 factor 對該列進行製表,然後提取該列的水平,之後使用 as.numeric 讀取它們。

檢視下面給出的示例,瞭解如何實現。

示例 1

以下程式碼片段建立了一個示例資料框 -

x<-rpois(20,1)
df1<-data.frame(x)
df1

建立了以下資料框

   x
1  2
2  0
3  1
4  1
5  1
6  0
7  0
8  1
9  5
10 2
11 1
12 0
13 1
14 2
15 0
16 0
17 0
18 0
19 1
20 2

要在上面建立的資料框中查詢 df1 的 x 列中存在 7 次的值,請將以下程式碼新增到上述程式碼片段中 -

x<-rpois(20,1)
df1<-data.frame(x)
as.numeric(levels(factor(df1$x))[tabulate(factor(df1$x))==7])

輸出

如果將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -

[1] 1

示例 2

以下程式碼片段建立了一個示例資料框 -

y<-sample(0:5,20,replace=TRUE)
df2<-data.frame(y)
df2

建立了以下資料框

  y
1  4
2  1
3  0
4  5
5  2
6  1
7  0
8  0
9  3
10 2
11 2
12 1
13 2
14 2
15 2
16 1
17 1
18 1
19 3
20 2

要在上面建立的資料框中查詢 df2 的 y 列中存在 2 次的值,請將以下程式碼新增到上述程式碼片段中 -

y<-sample(0:5,20,replace=TRUE)
df2<-data.frame(y)
as.numeric(levels(factor(df2$y))[tabulate(factor(df2$y))==2])

輸出

如果將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -

[1] 3

示例 3

以下程式碼片段建立了一個示例資料框 -

z<-round(rnorm(20),0)
df3<-data.frame(z)
df3

建立了以下資料框

   z
1  -1
2   2
3  -1
4   1
5   1
6  -2
7  -1
8  -1
9   0
10  0
11  1
12  1
13 -1
14  0
15  1
16  0
17  0
18  0
19 -1
20  0

要在上面建立的資料框中查詢 df3 的 z 列中存在 6 次的值,請將以下程式碼新增到上述程式碼片段中 -

z<-round(rnorm(20),0)
df3<-data.frame(z)
as.numeric(levels(factor(df3$z))[tabulate(factor(df3$z))==6])

輸出

如果將上面給出的所有程式碼片段作為單個程式執行,它將生成以下輸出 -

numeric(0)

更新於: 2021-11-05

132 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.