如何在 R 資料框中查詢所有行值都相等的列數?


為了找到 R 資料框中所有行值都相等的列數,我們可以按照以下步驟操作:

  • 首先,建立一個數據框。

  • 然後,使用 sum 函式結合 length 和 apply 函式來查詢所有行值都相等的列數。

示例 1

建立資料框

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

x<-rpois(25,1)
y<-rpois(25,1)
z<-rpois(25,1)
df<-data.frame(x,y,z)
df

輸出

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出可能因您的系統而異):

   x y z
1  2 1 5
2  1 0 0
3  0 1 1
4  2 0 2
5  0 1 3
6  1 1 1
7  0 0 2
8  1 1 2
9  2 0 0
10 2 0 0
11 2 0 0
12 0 1 0
13 3 0 1
14 1 2 0
15 4 1 0
16 0 4 0
17 0 1 1
18 0 0 1
19 5 0 0
20 0 1 1
21 0 1 1
22 1 1 1
23 1 0 2
24 1 0 2
25 1 1 1

查詢所有行值都相等的列數

使用 sum 函式結合 length 和 apply 函式來查詢資料框 df1 中所有行值都相等的列數:

x<-rpois(25,1)
y<-rpois(25,1)
z<-rpois(25,1)
df<-data.frame(x,y,z)
sum(apply(df, 1, function(x) length(unique(x))==1))

輸出

[1] 5

示例 2

建立資料框

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

v1<-round(rnorm(25),0)
v2<-round(rnorm(25),0)
dat<-data.frame(v1,v2)
dat

輸出

執行上述指令碼後,將生成以下輸出(由於隨機化,此輸出可能因您的系統而異):

    v1 v2
1  -1 -1
2  -1  1
3   3  0
4   0  0
5   0  0
6   0  0
7   0 -1
8   1  0
9  -1 -1
10  1  2
11  1  0
12 -1  1
13  1  1
14 -1 -1
15 -1  0
16  0  1
17 -1  2
18  1 -1
19  2  1
20  0 -1
21  0 -1
22 -1 -1
23  0 -2
24  0  0
25  3  0

查詢所有行值都相等的列數

使用 sum 函式結合 length 和 apply 函式來查詢資料框 df2 中所有行值都相等的列數:

v1<-round(rnorm(25),0)
v2<-round(rnorm(25),0)
dat<-data.frame(v1,v2)
sum(apply(dat, 1, function(x) length(unique(x))==1))

輸出

[1] 6

更新於:2021年11月16日

78 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告