如何在 R 中的 data.table 物件中查詢所有行值都相等的列數?


為了在 R 中的 data.table 物件中查詢所有行值都相等的列數,我們可以按照以下步驟操作:

  • 首先,建立一個 data.table 物件。

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

示例 1

建立 data.table 物件

讓我們建立一個 data.table 物件,如下所示:

library(data.table)
x<-sample(0:1,25,replace=TRUE)
y<-sample(0:1,25,replace=TRUE)
DT1<-data.table(x,y)
DT1

輸出

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

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

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

使用 sum 函式以及 length 和 apply 函式來查詢 data.table 物件 DT1 中所有行值都相等的列數:

library(data.table)
x<-sample(0:1,25,replace=TRUE)
y<-sample(0:1,25,replace=TRUE)
DT1<-data.table(x,y)
sum(apply(DT1, 1, function(x) length(unique(x))==1))

輸出

[1] 12

示例 2

建立 data.table 物件

讓我們建立一個 data.table 物件,如下所示:

library(data.table)
v1<-rpois(25,1)
v2<-rpois(25,1)
DT2<-data.table(v1,v2)
DT2

輸出

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

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

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

使用 sum 函式以及 length 和 apply 函式來查詢 data.table 物件 DT2 中所有行值都相等的列數:

library(data.table)
v1<-rpois(25,1)
v2<-rpois(25,1)
DT2<-data.table(v1,v2)
sum(apply(DT2, 1, function(x) length(unique(x))==1))

輸出

[1] 7

更新於:2021年11月8日

339 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.